Mysql
 sql >> Base de données >  >> RDS >> Mysql

Mysql :trouver le nombre de lignes qui ont la même valeur les unes après les autres

Oh, je pense que j'ai compris. Vous vous souciez des séquences de valeurs adjacentes. La première colonne est l'identifiant maximum, la seconde est la valeur et la troisième est la longueur.

Oui, vous pouvez le faire avec des variables :

select max(id), val, count(*)
from (select t.*,
             (@grp := if(@v = val, @grp,
                         if(@v := val, @grp + 1, @grp + 1)
                        )
             ) as grp
      from yourtable t cross join
           (select @v := -1, @grp := -1) params
      order by id
     ) t
group by grp, val
order by max(id);