【发布时间】:2021-11-10 22:12:07
【问题描述】:
在此处输入代码在我的 SQl 服务器中有一个这样的表
NTN | Channel Date_Time
006175A | Yellow 15-9-2021 10:16:00:00
0061751 | Green 15-9-2021 10:15:00:00
00617523 | Red 15-9-2021 10:14:00:00
006175A | Green 15-9-2021 10:13:00:00
006175A | Green 15-9-2021 10:12:00:00
006175A | Green 15-9-2021 10:11:00:00
0061756 | Red 15-9-2021 10:10:00:00
00617523 | Green 16-9-2021 10:10:00:00
00617523 | Green 16-9-2021 10:12:00:00
现在我要做的是为我的 NTN 列显示连续的绿色,如下所示:
NTN | Greens | Max(Date_Time) | Min(Date_Time)
006175A | 3 | 15-9-2021 10:13:00:000 | 15-9-2021 10:11:00:00
00617523 | 2 | 16-9-2021 10:12:00:000 | 16-9-2021 10:10:00:00
谁能帮助我如何使用 SQL Server 实现这一目标
【问题讨论】:
-
为什么 NTN=0061751 没有出现在您的预期结果中,最长序列为 1?
-
我没有时间写一个完整的答案,但是在谷歌上搜索的对你有帮助的关键词是“差距和岛屿”。
-
为什么你的日期时间会在几分钟内减少,但在几天内就会增加?
-
如果连续三个绿色,如果中间出现红色,但对于不同的 NTN,这会改变预期结果吗?
-
@MatBailie 是的,它会改变预期结果,因为我想要相同 NTN 的连续果岭。
标签: sql tsql sql-server-2016 aggregation gaps-and-islands