Postgres按间隔计算项目

时间:2015-06-26 23:19:38

标签: sql postgresql

我试图获得给定间隔的项目计数,但没有指定开始或停止时间。我想你可以用窗口功能来做,但我不太清楚如何去做。

问题如下我想知道在给定的任意间隔内人们登录网站的次数是20分钟。

示例A

[Semantical Error] line 0, col 91 near 'client_id': Error: Class AppBundle\Entity\Measurement has no field or association named client_id

在上面的例子中,我将突出显示项目(2,3),(3,4,5),(4,5,6),(5,6)我想要的输出是

     1. 2015-06-24 23:00:00
     2. 2015-06-24 23:45:00
     3. 2015-06-25 00:00:00
     4. 2015-06-25 00:15:00
     5. 2015-06-25 00:17:00
     6. 2015-06-25 00:21:00

此外,只保留数据> count> = 2,否则一切都将成为有效的分组

现在是一个窗口功能我应该去的方式,cte还是有另一种习惯采用?

2 个答案:

答案 0 :(得分:1)

使用自联接尝试此查询:

C:\wamp\www\projectname\app>

答案 1 :(得分:0)

您可以通过以下查询获取计数的每个“日”组:

SELECT MIN(last_seen_at), MAX(last_seen_at), COUNT(*)
FROM user_kinds
GROUP BY DATE(last_seen_at)
ORDER BY DATE(last_seen_at) DESC LIMIT 5;

在我的样本数据集中产生的结果如下:

 2015-06-26 00:12:30.476548 | 2015-06-26 22:06:25.134322 |    69
 2015-06-25 00:46:03.392651 | 2015-06-25 23:49:46.616964 |    14
 2015-06-24 14:22:33.578176 | 2015-06-24 23:39:01.32241  |    10
 2015-06-23 01:42:53.438663 | 2015-06-23 20:12:21.864601 |     2
(5 rows)