我有一张这样的桌子,
event_id | date
----------+------------------------
1703702 | 2013-06-25 07:50:57-04
3197588 | 2013-06-25 07:51:57-04
60894420 | 2013-06-25 07:52:57-04
60894420 | 2013-06-25 07:53:57-04
183503 | 2013-06-25 07:54:57-04
63116743 | 2013-06-25 07:55:57-04
63110451 | 2013-06-25 07:56:57-04
63116743 | 2013-06-25 07:57:57-04
63116743 | 2013-06-25 07:58:57-04
我想应用滞后函数,但也需要一个分组,这样我就可以找到任何特定事件之间的时间间隔.
我想要这样的:
SELECT event_id, difference
FROM (
SELECT event_id, date - lag(date) over (order by date) as
difference FROM table GROUP BY event_id
) t;
然而,我不能使用GROUP BY和LAG函数.我希望得到与以下类似的结果:
63116743, {120, 60}
60894420, {60}
...
...
因此,在第一个id的事件和第二个id的事件之间有一个120秒和60秒的窗口.
有办法做到这一点吗?输出格式并不太重要,只要我最终能将其放入数组中.我用的是Postgres 9.1