sql >> Base de Datos >  >> RDS >> Mysql

obtener registros consecutivos en mysql

La consulta interna cuenta cada racha. La consulta externa obtiene el máximo por usuario. La consulta no se ha probado (pero se basa en una que funciona)

set @user_id = null;
set @streak = 1;

select user_id, max(streak) from (
  SELECT user_id, streak,
    case when @user_id is null OR @user_id != user_id then @streak := 1 else @streak := @streak + 1 end as streak_formula,
    @user_id := user_id,
    @streak as streak
  FROM my_table
) foo
group by user_id