И така, искате да намерите поредици според датата, които са еднакви.
Ето един трик:ако вземете разликата между row_number()
върху цялата група и row_number()
разделени по code
, тогава тя ще бъде постоянна за съседни редове със същия код. Останалото е просто агрегиране:
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;