相同间隔分组

 

WITH test AS(SELECT 1 ID FROM dual UNION ALL
 SELECT 2 ID FROM dual UNION ALL
SELECT 5 ID FROM dual UNION ALL
SELECT 6 ID FROM dual UNION ALL
SELECT 7 ID FROM dual UNION ALL
SELECT 9 ID FROM dual UNION ALL
SELECT 10 ID FROM dual UNION ALL
SELECT 23 ID FROM dual UNION ALL
SELECT 24 ID FROM dual UNION ALL
SELECT 25 ID FROM dual UNION ALL
SELECT 26 ID FROM dual UNION ALL
SELECT 30 ID FROM dual UNION ALL
SELECT 31 ID FROM dual UNION ALL
SELECT 34 ID FROM dual)
SELECT T2.ID STARTTIME,
       DECODE(SUBSTR(T2.C1, 1, INSTR(T2.C1, ' ')),
              NULL,
              T2.ID,
              SUBSTR(T2.C1, 1, INSTR(T2.C1, ' '))) ENDTIME
  FROM (SELECT T1.ID, MAX(T1.C1) C1
          FROM (SELECT T.*,
                       LTRIM(SYS_CONNECT_BY_PATH(T.ID, ' '), ' ') C1,
                       CONNECT_BY_ISLEAF RN
                  FROM (SELECT T.ID,
                               DECODE(LAG(T.ID) OVER(ORDER BY T.ID) + 1,
                                      T.ID,
                                      T.ID - 1,
                                      NULL) PID
                          FROM TEST T
                         ORDER BY T.ID) T
                CONNECT BY T.ID = PRIOR T.PID) T1
         WHERE T1.RN = 1
         GROUP BY T1.ID) T2
 ORDER BY T2.ID;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值