【发布时间】:2015-01-20 14:57:38
【问题描述】:
我在表中有时间序列的数据。该表具有时间戳列,其类型为时间戳。我需要过滤此表,以便查询仅在其时间戳大于前一个结果行的时间戳加上配置的间隔时才返回该行。
如果配置的间隔是 3 秒,我希望返回以下数据中标有箭头的行:
2015-01-20T12:00:00 <-
2015-01-20T12:00:01
2015-01-20T12:00:02
2015-01-20T12:00:03 <-
2015-01-20T12:00:06 <-
2015-01-20T12:00:10 <-
2015-01-20T12:00:12
2015-01-20T12:00:13 <-
2015-01-20T12:00:14
2015-01-20T12:00:15
2015-01-20T12:00:16 <-
我尝试使用窗口函数来获得正确的结果。但问题是我只能以 3 秒的间隔对结果进行分组,并且从 2015-01-20T12:00:12 返回的解决方案行会有所不同。
我什至不确定这是否可以完成,因为要返回的行取决于以前的结果。所以我的问题是,这是否可以通过 Postgres 9.3 以一种有效的方式完成。
【问题讨论】: