MySQL user defined variables
würde Ihnen in diesem Fall helfen.
Jedes Mal, wenn Sie einen neuen Status sehen, weisen Sie 1
zu als Zeilennummer in die entsprechende Zeile.
Und wenn Sie denselben Status wie in der vorherigen Zeile sehen, weisen Sie stattdessen eine erhöhte Zeilennummer zu.
Auf diese Weise können Sie endlich die Datensätze mit row number = 1
filtern nur. Diese speziellen Datensätze zeigen tatsächlich einen Unterschied im Vergleich zu ihrer unmittelbar vorherigen Zeile
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