【发布时间】:2019-07-29 10:58:47
【问题描述】:
将此日期列表视为timestamptz:
我使用颜色手动对日期进行分组:每组与下一组之间至少间隔 2 分钟。
我试图通过查看他们执行操作的时间(数据是他们完成学习句子的时间)来衡量给定用户的学习量。例如:在黄色块上,我认为用户已学习从 14 点 24 分到 14 点 27 分一次,或者大约连续 3 分钟。
我了解如何通过查看所有日期并查找两行之间的间隔,使用编程语言对这些日期进行分组。
我的问题是:如何使用 Postgres 以这种方式对日期进行分组?
(在 Google 或 SO 上寻找“差距”会带来太多不相关的结果;我想我错过了我在这里尝试做的词汇。)
【问题讨论】:
-
你看过窗口函数吗?您可以使用领先或滞后postgresql.org/docs/8.4/functions-window.html 计算每行的差距。
-
您可能会发现这个问题和答案很有帮助stackoverflow.com/questions/34338991/…。
-
你要找的是gaps-and-islands。
-
谢谢,我学到了很多东西。找到所有三个概念的基本示例(日期/滞后()/岛屿的窗口函数)并不容易,但我会在找到时回复我自己的答案。
标签: sql postgresql time-series window-functions gaps-and-islands