我在将相同类型的记录与连续序列合并并从合并记录中计算完整序列时遇到问题。
排序应该基于 ID 完成,因为当序列达到 100 时,序列可能会翻转到 0。请参阅输入/输出示例中的最后一个条目。
是否可以有一个如下所列的输入,并有一个产生输出的查询,该输出也在 SQL Server 2012 中列出?
输入
Id Type Begin End
-----------------------------
1 1 10 20
2 1 21 23
3 2 24 28
4 1 29 40
5 2 41 47
6 2 48 50
7 2 75 80
8 1 81 100
9 1 0 10
10 1 11 20
11 1 21 5
12 1 5 6
输出
FromId ToId Type Begin End Length
----------------------------------------------------
1 2 1 10 23 13 (23-19)
3 3 2 24 28 4 (28-24)
4 4 1 29 40 11 (40-29)
5 6 2 41 50 9 (50-41)
7 7 2 75 80 5 (80 - 75)
8 12 1 81 20 227*
*(100-81) + 10 + (100-11 + 20) + (100-21 + 5) + 1 -> 序列的翻转
编辑
请注意,源中的第 6 行和第 7 行没有合并,因为它们不连续。第 6 行以 50 结尾,第 7 行以 75 开头。只有相同类型的连续行需要合并。