sql >> Databasteknik >  >> RDS >> Mysql

Gruppera liknande rader bredvid varandra i MySQL

Du kan göra detta genom att använda ett smart knep. Tricket är att räkna antalet beskrivningar upp till ett visst ID som är olika från beskrivningen på det id . För värden i en sekvens kommer detta nummer att vara detsamma.

I MySQL kan du göra denna räkning med hjälp av en korrelerad underfråga. Resten är bara att gruppera efter detta fält för att sammanföra värdena:

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;



  1. XAMPP Körs väldigt långsamt med PHP/MySQL

  2. SQLAlchemy/MySQL Förlorade anslutningen till MySQL-servern under förfrågan

  3. lagra TEXT/BLOB i samma tabell eller inte?

  4. SQL Server Databas Snapshots -4