【发布时间】:2019-10-08 07:29:37
【问题描述】:
假设数据
ID Date Mode
1 2019-09-20 09:28 IN
2 2019-09-20 19:00 IN
3 2019-09-20 19:00 IN
4 2019-09-20 19:00 IN
5 2019-09-20 19:01 IN
6 2019-09-20 19:01 IN
7 2019-09-20 19:01 Out
8 2019-09-20 20:28 IN
9 2019-09-20 20:35 IN
10 2019-09-20 20:50 Out
11 2019-09-20 20:55 Out
12 2019-09-20 21:30 IN
转换成最小签到到最大签出的周期行
我使用迭代来实现期望的结果,但想要优化查询(设置基数或 CTE)以提高性能,
这就是我想要的
ID DateIN ID DateOut
01 2019-09-20 09:28 07 2019-09-20 19:01
08 2019-09-20 20:28 11 2019-09-20 20:55
【问题讨论】:
-
您确定您使用的是 SQL Server 2008 吗?它不再受支持。
标签: sql sql-server sql-server-2008 window-functions gaps-and-islands