您可以使用巧妙的技巧来做到这一点。诀窍是计算与特定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;