Takže chcete najít sekvence podle data, které jsou stejné.
Zde je trik:pokud vezmete rozdíl mezi row_number()
přes celou skupinu a row_number()
rozděleno podle code
, pak bude konstantní pro sousední řádky se stejným kódem. Zbytek je jen agregace:
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;