Existe um truque para fazer isso. Se você subtrair uma sequência crescente de números das datas, eles serão constantes para datas sequenciais. Podemos usar isso para definir grupos para cada desenvolvedor.
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 você sabe que há no máximo um registro por data, então você pode usar
row_number()
em vez de dense_rank()
e count(*)
em vez de count(distinct MRDate)
.