Anda dapat melakukan ini dengan menggunakan trik pintar. Caranya adalah dengan menghitung jumlah deskripsi hingga id tertentu yang berbeda dari keterangan di id
. Untuk nilai yang berurutan, angka ini akan sama.
Di MySQL Anda dapat melakukan penghitungan ini menggunakan subquery yang berkorelasi. Sisanya hanya mengelompokkan berdasarkan bidang ini untuk menyatukan nilai:
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;