MySQL user defined variables
ti aiuterebbe in questo caso.
Ogni volta che vedi un nuovo stato, assegna 1
come numero di riga alla riga corrispondente.
E se vedi lo stesso stato che hai visto nella riga precedente, assegna invece un numero di riga incrementato.
In questo modo puoi finalmente filtrare i record con row number = 1
solo. Questi record particolari stanno effettivamente mostrando differenze rispetto alla riga precedente immediata
SELECT
*
FROM
(
SELECT
*,
IF(@prevStatus = YT.status_1, @rn := @rn + 1,
IF(@prevStatus := YT.status_1, @rn := 1, @rn := 1)
) AS rn
FROM your_table YT
CROSS JOIN
(
SELECT @prevStatus := -1, @rn := 1
) AS var
ORDER BY YT.ID
) AS t
WHERE t.rn = 1
ORDER BY t.ID