sql >> Databáze >  >> RDS >> Mysql

Seskupování podobných řádků vedle sebe v MySQL

Můžete to udělat pomocí chytrého triku. Trik je spočítat počet popisů až do konkrétního ID, které jsou různé z popisu na tomto id . Pro hodnoty v sekvenci bude toto číslo stejné.

V MySQL můžete tento počet provést pomocí korelovaného poddotazu. Zbytek je pouze seskupení podle tohoto pole, aby se hodnoty spojily:

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. Sqlalchemy, nezpracovaný dotaz a parametry

  2. Jak vytvořit klon vašeho databázového clusteru MySQL nebo PostgreSQL

  3. Vytvářejte fyzické zálohy databází MariaDB nebo MySQL

  4. Výběr náhodných řádků pomocí MySQL