【发布时间】:2019-06-11 02:46:55
【问题描述】:
每当我从上一次记录以来的时间超过 60 天时,我都需要创建一个新分组。
基本上,我也需要获取这里的数据:
RowNo StartDate StopDate DaysBetween
1 3/21/2017 3/21/2017 14
2 4/4/2017 4/4/2017 14
3 4/18/2017 4/18/2017 14
4 6/23/2017 6/23/2017 66
5 7/5/2017 7/5/2017 12
6 7/19/2017 7/19/2017 14
7 9/27/2017 9/27/2017 70
8 10/24/2017 10/24/2017 27
9 10/31/2017 10/31/2017 7
10 11/14/2017 11/14/2017 14
然后把它变成这样:
RowNo StartDate StopDate DaysBetween Series
1 3/21/2017 3/21/2017 14 1
2 4/4/2017 4/4/2017 14 1
3 4/18/2017 4/18/2017 14 1
4 6/23/2017 6/23/2017 66 2
5 7/5/2017 7/5/2017 12 2
6 7/19/2017 7/19/2017 14 2
7 9/27/2017 9/27/2017 70 3
8 10/24/2017 10/24/2017 27 3
9 10/31/2017 10/31/2017 7 3
10 11/14/2017 11/14/2017 14 3
一旦我得到它,我将按系列分组并获取各个持续时间的 min(StartDate) 和 max(StopDate)。
我可以使用光标来做到这一点,但我确信比我聪明得多的人已经找到了一个更优雅的解决方案。提前致谢!
【问题讨论】:
标签: sql sql-server date sql-server-2008