【发布时间】:2020-02-06 21:50:24
【问题描述】:
我正在尝试创建报告,这是我的输入数据。
Stage Name Date
1 x 12/05/2019 10:00:03
1 x 12/05/2019 10:05:01
1 y 12/06/2019 12:00:07
2 x 12/06/2019 13:12:03
2 x 12/06/2019 13:23:00
1 y 12/08/2019 16:00:07
2 x 12/09/2019 09:17:59
这是我想要的输出。
Stage Name DateFrom DateTo DateDiff
1 x 12/05/2019 10:00:03 12/06/2019 12:00:07 1
1 y 12/06/2019 12:00:07 12/06/2019 13:12:03 0
2 x 12/06/2019 13:12:03 12/08/2019 16:00:07 2
1 y 12/08/2019 16:00:07 12/09/2019 09:17:59 1
我不能在阶段和名称上使用 group by 子句,因为它会将我输入的第 3 行和第 6 行分组。我尝试将表连接到自身,但没有得到想要的结果。这在 SQL 中甚至可能吗?任何想法都会有所帮助。我正在使用 Microsoft SQL Server。
【问题讨论】:
-
这是一个典型的“差距和岛屿”问题,其中岛分区由元组(阶段,名称)定义。应作为副本关闭。
-
@TheImpaler,我同意,但我没有一个很好的规范空白和孤岛问题可用作基础。我不认为你有一个书签?
标签: sql sql-server tsql gaps-and-islands