Mysql
 sql >> Database >  >> RDS >> Mysql

Raggruppare righe simili una accanto all'altra in MySQL

Puoi farlo usando un trucco intelligente. Il trucco è contare il numero di descrizioni fino a un particolare ID che sono diverse dalla descrizione in quell'id . Per i valori in una sequenza, questo numero sarà lo stesso.

In MySQL puoi fare questo conteggio usando una sottoquery correlata. Il resto è solo raggruppamento in base a questo campo per riunire i valori:

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;