with a as (select '2014' f,'00001' k from dual
union all select '2014','00002' from dual
union all select '2014','00003' from dual
union all select '2014','00004' from dual
union all select '2014','00005' from dual
union all select '2014','00007' from dual
union all select '2014','00008' from dual
union all select '2014','00009' from dual
union all select '2013','00020' from dual
union all select '2013','00021' from dual
union all select '2013','00022' from dual
union all select '2013','00024' from dual
union all select '2013','00025' from dual)
select c.f,min(c.k) start_f,max(c.k) end_k
from (select b.*,to_number(b.k-rownum)cc
from
(select * from a
order by f,k)b)c
group by c.f,c.cc;
F START_F END_K
---- ------- -----
2013 00020 00022
2013 00024 00025
2014 00001 00005
2014 00007 00009
本语句是求F相同的情况下K连续!
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/13387766/viewspace-418929/ ,如需转载,请注明出处,否则将追究法律责任。