Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Mysql:Finde die Anzahl der Zeilen, die nacheinander den gleichen Wert haben

Oh, ich glaube, ich habe es herausgefunden. Sie interessieren sich für Sequenzen von Werten, die benachbart sind. Die erste Spalte ist die maximale ID, die zweite der Wert und die dritte die Länge.

Ja, Sie können dies mit Variablen tun:

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);