MySQL user defined variables
ajudaria neste caso. Sempre que você ver um novo status, atribua
1
como número de linha para a linha correspondente. E se você vir o mesmo status que viu na linha anterior, atribua um número de linha incrementado.
Dessa forma, você pode finalmente filtrar os registros com
row number = 1
só. Esses registros específicos estão realmente mostrando diferença em comparação com a linha anterior imediata 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