Jednym ze sposobów rozwiązania takiego problemu jest użycie podzapytania ze zmienną użytkownika. Możesz śledzić wartość koloru z poprzedniego wiersza za pomocą zmiennej użytkownika, a następnie użyć zmiennej użytkownika w klauzuli WHERE zewnętrznego zapytania do filtrowania zwracanych wierszy.
Wypróbuj coś takiego:
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