Има трик да направите това. Ако извадите нарастваща последователност от числа от датите, тогава те ще бъдат постоянни за дати, които са последователни. След това можем да използваме това за дефиниране на групи за всеки разработчик.
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;
Ако знаете, че има най-много един запис на дата, тогава можете да използвате row_number()
вместо dense_rank()
и count(*)
вместо count(distinct MRDate)
.