Quindi, vuoi trovare sequenze in base alla data che sono le stesse.
Ecco un trucco:se prendi la differenza tra row_number()
sull'intero gruppo e row_number()
partizionato per code
, quindi sarà costante per le righe adiacenti con lo stesso codice. Il resto è solo aggregazione:
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;