Det finns ett knep att göra detta. Om du subtraherar en ökande sekvens av tal från datumen, kommer de att vara konstanta för datum som är sekventiella. Vi kan sedan använda detta för att definiera grupper för varje utvecklare.
select developer, max(numdays) as maxseq
from (select developer, grp, min(MRDate) as MR_start, max(MRDate) as MR_end,
count(distinct MRDate) as numdays
from (select t.*,
(MRDate - dense_rank() over (partition by developer order by date)) as grp
from t
) t
group by developer, grp
) t
group by developer;
Om du vet att det finns högst en post per datum kan du använda row_number()
istället för dense_rank()
och count(*)
istället för count(distinct MRDate)
.