Existuje trik, jak to udělat. Pokud odečtete rostoucí posloupnost čísel od dat, budou pro data, která jsou sekvenční, konstantní. To pak můžeme použít pro definování skupin pro každého vývojáře.
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;
Pokud víte, že pro každé datum existuje maximálně jeden záznam, můžete použít row_number()
místo dense_rank()
a count(*)
místo count(distinct MRDate)
.