これは方法であることができる:
with test("DATE","GROUP") as
(
select to_date('11-10-16', 'dd-mm-rr'),'A' from dual union all
select to_date('12-10-16', 'dd-mm-rr'),'A' from dual union all
select to_date('13-10-16', 'dd-mm-rr'),'A' from dual union all
select to_date('14-10-16', 'dd-mm-rr'),'B' from dual union all
select to_date('15-10-16', 'dd-mm-rr'),'B' from dual union all
select to_date('16-10-16', 'dd-mm-rr'),'A' from dual union all
select to_date('17-10-16', 'dd-mm-rr'),'A' from dual union all
select to_date('18-10-16', 'dd-mm-rr'),'C' from dual union all
select to_date('19-10-16', 'dd-mm-rr'),'C' from dual union all
select to_date('20-10-16', 'dd-mm-rr'),'C' from dual union all
select to_date('21-10-16', 'dd-mm-rr'),'C' from dual union all
select to_date('22-10-16', 'dd-mm-rr'),'A' from dual union all
select to_date('23-10-16', 'dd-mm-rr'),'A' from dual union all
select to_date('24-10-16', 'dd-mm-rr'),'A' from dual
)
select min("DATE"), max("DATE"), "GROUP"
from (
select "DATE",
"DATE" - row_number() over (partition by "GROUP" order by "DATE") as minDate,
"GROUP"
from test
)
group by "GROUP", minDate
order by "GROUP", minDate
外部一つは、単にこのようにグループ毎に行を構築し、この最小日付で集約しながら、内側のクエリは、連続した日付のグループの最小の日付を構築連続する日付。
予約語を列名として使用することは避けてください。
注文を指示するID列がありますか? – JohnHC