Jedním ze způsobů, jak vyřešit problém, jako je tento, je použití dílčího dotazu s uživatelskou proměnnou. Hodnotu barvy z předchozího řádku můžete sledovat pomocí uživatelské proměnné a poté pomocí uživatelské proměnné v klauzuli where vnějšího dotazu filtrovat řádky, které vrátíte.
Zkuste něco takového:
select id,this_color as color
from
(
select id,@last as last_color,@last:=color as this_color
from your_table
order by id
) as sub
where this_color != last_color