Можете да направите това с помощта на хитър трик. Номерът е да преброите броя на описания до конкретен идентификатор, които са различни от описанието в този id
. За стойности в поредица това число ще бъде същото.
В MySQL можете да направите това броене, като използвате корелирана подзаявка. Останалото е просто групиране по това поле, за да обедините стойностите:
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;