【发布时间】:2021-08-29 11:50:42
【问题描述】:
我有一个包含时间戳列和一些数据列的表。给定间隔长度 T(比如 30 分钟),我想将表分区为“会话”。如果时间戳值的差异小于 T,则两个相邻行(按时间戳排序时)位于同一“会话”中。如果差异大于 T,则会话中断。例如,下表有两个大于 T 的间隔来分割会话。如何使用 SQL 生成会话列?
| row | timestamp | session |
|---|---|---|
| 1 | 18:00 | 1 |
| 2 | 18:02 | 1 |
| 3 | 18:04 | 1 |
| 4 | 18:30 | 1 |
| 5 | 19:10 | 2 |
| 6 | 19:20 | 2 |
| 7 | 20:20 | 3 |
【问题讨论】:
标签: sql postgresql windowing