【发布时间】:2020-04-08 17:29:32
【问题描述】:
我不知道如何措辞,但我在单独的行中有 Start 和 End 时间,我想将它们合并成一行。在这个示例数据中,它基本上是跟踪/记录项目时间:
Project Type Time
A Start 1:00
A End 1:10
B Start 2:00
B End 2:10
B Start 2:30
B End 2:45
C End 3:00
D Start 3:10
D End 3:20
我正在寻找的是这样的:
Project Start End
A 1:00 1:10
B 2:00 2:10
B 2:30 2:45
C NULL 1:10
D 3:10 3:20
奇怪的两部分是:
- 同一项目可能有多个开始/结束时间对(例如 如上面的项目B),可能背靠背或在同一天分开
- 我可能缺少一些开始或结束 次。
谁能指出我正确的方向?我在 Stackoverflow 上找不到任何具有相同要求的内容。
【问题讨论】:
-
如果你有 START START END END 你想要什么?
-
我会采用第一个 START 并将其与第一个后续 END 配对。以下 END 将有一个 NULL 配对的 START 时间
-
...第二个 START 将与 NULL END 时间配对
标签: sql sql-server group-by window-functions gaps-and-islands