MySQL user defined variables
ще ви помогне в този случай.
Всеки път, когато видите ново състояние, присвоете 1
като номер на ред към съответния ред.
И ако видите същото състояние, което видяхте в предишния ред, вместо това задайте увеличен номер на ред.
По този начин най-накрая можете да филтрирате записите с row number = 1
само. Тези конкретни записи всъщност показват разлика в сравнение с техния непосредствен предходен ред
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