在下面的查询中添加另一列

时间:2018-08-31 04:48:14

标签: sql

with test (tel) as  
(select '023158100001' from dual union all
    select '023158100002' from dual union all
  select '023158100003' from dual union all
  select '023158100004' from dual union all
  select '023158111545' from dual union all
  select '023158111546' from dual union all
  select '023158111547' from dual union all
    select '023158111617' from dual union all
 select '023158121110' from dual union all
    select '023158121111' from dual
    ),
    inter as
    (select tel,
     lag(tel) over (order by tel) lag_tel
     from test
    ),
   inter_2 as
   (select tel,
    sum(case when nvl(tel - lag_tel, 1) = 1 then 0 else 1 end) over 
   (order by tel) tel_group
   from inter
   )
   select min(tel) min_tel,
   max(tel) max_tel
   from inter_2
   group by tel_group
   order by 1;

MIN_TEL      MAX_TEL
------------ ------------
023158100001 023158100004
023158111545 023158111547
023158111617 023158111617
023158121110 023158121111

现在我想在此处添加另一列开关也许现在023158100001 023158100004位于一个开关下面,假设S1和023158111545至023158111546位于S2开关下面...现在023158111547处于S3开关下面我的输出将是

    MIN_TEL      MAX_TEL   Switch 
------------ ------------  ------------
023158100001 023158100004   S1                       
023158111545 023158111546   S2
023158111547 023158111547   S3
023158121110 023158121111   VS

任何人都可以打电话给我,如何使用上述查询来实现此逻辑

0 个答案:

没有答案