【发布时间】:2021-03-13 19:49:43
【问题描述】:
我正在尝试找到一种方法将连续的相似记录压缩为 1 行,例如:
Status starttime endtime
State1 2020-11-01 13:00:29.000 2020-11-01 13:03:59.000
State1 2020-11-01 13:03:59.000 2020-11-01 13:04:01.000
State1 2020-11-01 13:04:01.000 2020-11-01 13:05:27.000
State1 2020-11-01 13:05:27.000 2020-11-01 13:05:29.000
State2 2020-11-01 13:05:29.000 2020-11-01 13:11:31.000
State2 2020-11-01 16:19:35.000 2020-11-01 16:19:55.000
会压缩成
Status starttime endtime
State1 2020-11-01 13:00:29.000 2020-11-01 13:05:29.000
State2 2020-11-01 13:05:29.000 2020-11-01 13:11:31.000
State2 2020-11-01 16:19:35.000 2020-11-01 16:19:55.000
在这种情况下,前 4 行已经被压缩,因为它们是相同的状态,并且是连续的时间。最后2行没有压缩,因为它们之间有时间间隔。
这可能吗?
【问题讨论】:
-
你试过什么?你在哪里卡住了?向我们展示你的尝试。
-
差距有多普遍?记录可以是:A--B---B--C--A--C吗?
标签: sql sql-server datetime aggregate-functions gaps-and-islands