【发布时间】:2017-11-29 12:25:24
【问题描述】:
让我再解释一下。
此表记录了每个人每月每一天的记录。表中有大约 20 个字段。如果任何字段发生变化(日期字段除外),那么我想对这些记录进行分组。因此,例如,如果第 1、2 和 3 天相同,那么当我在第 4 天阅读并注意到它发生了变化时,我想将第 1、2 和 3 天与第 1 天的开始日期组合在一起,以及第 3 天的结束日期...等
Rownum ID BegDate EndDate Field1, Field2.... Field20
1 1 6/1/2017 6/1/2017 xxxx xxxx xxxxx
2 1 6/2/2017 6/2/2017 xxxx xxxx xxxxx
3 1 6/3/2017 6/3/2017 xxxx xxxx xxxxx
4 1 6/4/2017 6/4/2017 yyyy yyyy yyyy
5 1 6/5/2017 6/5/2017 yyyy yyyy yyyy
6 1 6/6/2017 6/6/2017 xxxx xxxx xxxxx
7 1 6/7/2017 6/7/2017 xxxx xxxx xxxxx
8 1 6/8/2017 6/8/2017 zzzz zzzz zzzz
....
所以在上面的示例数据中,我将有一个第 1,2,3 行的组,然后是第 4,5 行的组,然后是第 6,7 行的组,然后是第 8 行的组......等等
ID BegDate EndDate Field1 Field2 ...... Field20 Sum
1 6/1/2017 6/3/2017 xxxx xxxx xxxxx 3
1 6/4/2017 6/5/2017 yyyy yyyy yyyy 2
1 6/6/2017 6/7/2017 xxxx xxxx xxxxx 2
1 6/8/2017 6/15/2017 zzzz zzzz zzzz 8
.....
【问题讨论】:
-
编辑您的问题并提供示例数据。
-
样本数据集在这里会有所帮助 - 但研究 LAG
-
正如@GordonLinoff 所说,请提供样本数据和所需的结果数据集。解决方案可能是一个窗口函数。
标签: sql sql-server gaps-and-islands