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

Gruppieren ähnlicher Zeilen nebeneinander in MySQL

Dies gelingt Ihnen mit einem cleveren Trick. Der Trick besteht darin, die Anzahl der Beschreibungen bis zu einer bestimmten ID zu zählen, die anders sind aus der Beschreibung unter dieser id . Für Werte in einer Sequenz ist diese Nummer gleich.

In MySQL können Sie diese Zählung mit einer korrelierten Unterabfrage durchführen. Der Rest ist nur eine Gruppierung nach diesem Feld, um die Werte zusammenzubringen:

select min(id) as id, description, count(*) as numCondensed
from (select t.*,
             (select count(*)
              from table t2
              where t2.id <= t.id and t2.description <> t.description
             ) as grp
      from table t
     ) t
group by description, grp;