Bạn có thể làm điều này bằng cách sử dụng một thủ thuật thông minh. Mẹo là đếm số lượng mô tả cho đến một id cụ thể khác nhau từ mô tả tại id
đó . Đối với các giá trị trong một chuỗi, số này sẽ giống nhau.
Trong MySQL, bạn có thể thực hiện việc đếm này bằng cách sử dụng một truy vấn con tương quan. Phần còn lại chỉ là nhóm theo trường này để mang các giá trị lại với nhau:
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;