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