我的数据 struct 如下:
ID | Begin Date | End Date |
---|---|---|
1 | 1/1/2023 | 2/1/2023 |
1 | 2/2/2023 | 2/15/2023 |
1 | 2/20/2023 | 9/21/2023 |
1 | 9/22/2023 | 10/11/2023 |
2 | 1/11/2023 | 4/11/2023 |
2 | 5/9/2023 | 6/15/2023 |
2 | 7/7/2023 | 9/17/2023 |
我想分区的ID和创建一个行号,只有当有一个行的结束和下一个开始之间的差距(在ID组).
预期的结果如下所示:
ID | Begin Date | End Date | Group |
---|---|---|---|
1 | 1/1/2023 | 2/1/2023 | 1 |
1 | 2/2/2023 | 2/15/2023 | 1 |
1 | 2/20/2023 | 9/21/2023 | 2 |
1 | 9/22/2023 | 10/11/2023 | 2 |
2 | 1/11/2023 | 4/11/2023 | 1 |
2 | 5/9/2023 | 6/15/2023 | 2 |
2 | 7/7/2023 | 9/17/2023 | 3 |
每次日期有差距时都会创建一个新的组,但只要日期没有差距,组就会一直存在.
我已经使用了一个超前/滞后函数来计算间隙,但是我不知道如何在Oracle SQL Developer中进行这种条件递增.求你了,求你帮帮我