我在SQL Server中有一个带有时间戳的SQL表,如下所示:
│ Timestamps
──┼────────────────────
1 │ 2022-09-23 15:01:00
2 │ 2022-09-23 15:02:00
3 │ 2022-10-03 14:52:00
4 │ 2022-10-03 14:53:00
5 │ 2022-10-03 14:54:00
6 │ 2022-10-03 14:56:00
7 │ 2022-10-03 14:57:00
8 │ 2022-10-03 14:58:00
9 │ 2022-10-03 14:59:00
我想从表中提取所有连续的日期范围,其中范围内的每个时间戳之间的差异只有一分钟.这是预期的结果:
│ From │ To
──┼─────────────────────┼─────────────────────
1 │ 2022-09-23 15:01:00 │ 2022-09-23 15:02:00
2 │ 2022-10-03 14:52:00 │ 2022-10-03 14:54:00
3 │ 2022-10-03 14:56:00 │ 2022-10-03 14:59:00
注意,例如,行3、4和5被分组为一行,因为时间戳2022-10-03 14:52
、2022-10-03 14:53
和2022-10-03 14:54
是连续的.从2022-10-03 14:56
到2022-10-03 14:59
的剩余时间戳被分组到其自己的范围中,因为范围之间存在差距(应该是2022-10-03 14:55
).
什么是实现这一点的SQL查询?