Så du vil finde sekvenser i henhold til datoen, der er de samme.
Her er et trick:hvis du tager forskellen mellem row_number()
over hele gruppen og row_number()
opdelt med code
, så vil den være konstant for tilstødende rækker med den samme kode. Resten er kun sammenlægning:
select min(date), max(date), code
from (select t.*,
(row_number() over (order by date) -
row_number() over (partition by code order by date)
) as grpid
from followingdata t
) t
group by grpid, code;