あなたは巧妙なトリックを使用してこれを行うことができます。秘訣は、異なる特定のIDまでの説明の数を数えることです。 その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;