窗口滞后功能的限制记录设置为当天

时间:2017-10-27 08:17:52

标签: sql postgresql

我使用postgresql lag函数为用户提取下一条记录,但如何将其限制为当前记录的当天?

SELECT (sd.doc ->> 'readerId'::text)::integer current, LAG((sd.doc ->> 'readerId'::text)::integer) OVER (ORDER BY sd.created_at DESC) next FROM sd

table-id(主键),doc(jsonb类型)和created_at时间戳只有3个字段。

问题是我想选择当天用户访问的下一个读者。使用我当前的查询,它可以从第二天返回下一个readerId。

1 个答案:

答案 0 :(得分:1)

按天划分:

SELECT (sd.doc ->> 'readerId'::text)::integer current, LAG((sd.doc ->> 'readerId'::text)::integer) OVER (PARTITION BY date_trunc('1 day', sd.created_at) ORDER BY sd.created_at DESC) next FROM sd