Dus je wilt reeksen vinden op basis van de datum die hetzelfde zijn.
Hier is een truc:als je het verschil tussen row_number() . neemt over de hele groep en row_number() gepartitioneerd door code , dan is het constant voor aangrenzende rijen met dezelfde code. De rest is gewoon aggregatie:
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;