ओह, मुझे लगता है ये मुझे समझ आ गया। आप आसन्न मूल्यों के अनुक्रमों की परवाह करते हैं। पहला कॉलम अधिकतम आईडी है, दूसरा मान है, और तीसरा लंबाई है।
हां, आप इसे वेरिएबल के साथ कर सकते हैं:
select max(id), val, count(*)
from (select t.*,
(@grp := if(@v = val, @grp,
if(@v := val, @grp + 1, @grp + 1)
)
) as grp
from yourtable t cross join
(select @v := -1, @grp := -1) params
order by id
) t
group by grp, val
order by max(id);