采用:
SELECt MIN(t.id) 'mi',t.val,COUNT(*) FROM (SELECt x.id, x.val, CASE WHEN xt.val IS NULL OR xt.val != x.val THEN@rownum := @rownum+1 ELSE@rownum END AS grp FROM TABLE x JOIN (SELECt @rownum := 0) r LEFT JOIN (SELECT t.id +1 'id', t.val FROM TABLE t) xt ON xt.id = x.id) t GROUP BY t.val, t.grp ORDER BY mi
这里的关键是创建一个允许分组的人为值。
以前,更正了Guffa的答案:
SELECt t.id, t.val FROM TABLE tLEFT JOIN TABLE t2 on t2.id + 1 = t.id WHERe t2.val IS NULL OR t.val <> t2.val



