与psql我想统计每个唯一访问者。如何通过动态时间间隔聚合数据
一位独特的访问者是一位访问者,他在一个小时前还没有访问过。
因此,对于以下用户行和时间戳,我们会得到4个唯一访问者的总数,其中user1和user2分别计为2。
请注意,我不想在24小时内每小时汇总一次。我想在用户第一次访问时间戳之后的一小时内汇总。
我猜sql直线表达式不会这样做。
user1,"2015-07-13 08:28:45.247000"
user1,"2015-07-13 08:30:17.247000"
user1,"2015-07-13 09:35:00.030000"
user1,"2015-07-13 09:54:00.652000"
user2,"2015-07-13 08:28:45.247000"
user2,"2015-07-13 08:30:17.247000"
user2,"2015-07-13 09:35:00.030000"
user2,"2015-07-13 09:54:00.652000"
因此user1到达8点28分,这被视为一击。他在8点30分返回,计为零。然后他在9点35分回来,这是从8点30分开始的一个多小时,所以他又受到了重创。然后他在9:35回来,这距离上次9:30只有5分钟,所以这个计数为零。用户1总共有2次点击。同样的事情发生,对于user2意义两支安打各将其带到一个最终的总的4
'现在想'应该是'不想'我想?请始终声明您的Postgres版本。你有单独的用户表吗?实际的表定义将有助于查看数据类型和约束:CREATE TABLE脚本或psql中的\ d tbl'的输出。对于每60分钟访问一次的假设用户呢?计数为** 0次访问总数,即使在较长时间内也是如此?此外,严格来说,您的定义将在不到一小时前(从现在开始)排除访问。 –
该版本是亚马逊上的Redshift。所以它缺少某些postgres功能。如果用户每60分钟访问一次,则每次访问计数一次。如果用户在60分钟内访问超过一次,那么他只会计算一次。 –
红移不是Postgres,也非常有限。我不是粉丝。请记住提供您的版本,以问题开头。 –