MySQL user defined variables
zou je in dit geval helpen.
Telkens wanneer u een nieuwe status ziet, wijst u 1
toe als rijnummer naar de corresponderende rij.
En als u dezelfde status ziet als in de vorige rij, wijst u in plaats daarvan een verhoogd rijnummer toe.
Op deze manier kunt u eindelijk de records filteren met row number = 1
enkel en alleen. Deze specifieke records laten eigenlijk een verschil zien in vergelijking met hun direct vorige rij
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