C'è un trucco per farlo. Se sottrai una sequenza crescente di numeri dalle date, saranno costanti per le date sequenziali. Possiamo quindi usarlo per definire i gruppi per ogni sviluppatore.
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;
Se sai che esiste al massimo un record per data, puoi utilizzare row_number()
invece di dense_rank()
e count(*)
invece di count(distinct MRDate)
.