Hay un truco para hacer esto. Si resta una secuencia creciente de números de las fechas, entonces serán constantes para las fechas que son secuenciales. Luego podemos usar esto para definir grupos para cada desarrollador.
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;
Si sabe que hay como máximo un registro por fecha, entonces puede usar row_number()
en lugar de dense_rank()
y count(*)
en lugar de count(distinct MRDate)
.