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

Gruppering af lignende rækker ved siden af ​​hinanden i MySQL

Det kan du gøre ved at bruge et smart trick. Tricket er at tælle antallet af beskrivelser op til et bestemt id, der er forskellige fra beskrivelsen på det id . For værdier i en sekvens vil dette tal være det samme.

I MySQL kan du gøre denne optælling ved hjælp af en korreleret underforespørgsel. Resten er bare gruppering efter dette felt for at bringe værdierne sammen:

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. Hvordan administrerer du SQL-forespørgsler

  2. Sådan tilføjes og trækkes dag, måned, år i dato gennem MySql Query

  3. Hvorfor foreslår Eclipse Objekt som standardtilknytningstype for datatype Tekst?

  4. utf8 forvansket ved import til mysql