MySQL user defined variables
akan membantu Anda dalam kasus ini.
Setiap kali Anda melihat status baru, tetapkan 1
sebagai nomor baris ke baris yang sesuai.
Dan jika Anda melihat status yang sama dengan yang Anda lihat di baris sebelumnya, tetapkan nomor baris yang bertambah sebagai gantinya.
Dengan cara ini Anda akhirnya dapat memfilter catatan yang memiliki row number = 1
hanya. Catatan khusus ini sebenarnya menunjukkan perbedaan dibandingkan dengan baris sebelumnya langsung
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