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;