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
任何人都可以打电话给我,如何使用上述查询来实现此逻辑