SELECT a, b, ROW_NUMBER() OVER (PARTITION BY a ORDER BY b DESC) AS rn1, IF ( @prev = a, @rn := @rn + 1, CASE WHEN (@prev := a) IS NOT NULL OR TRUE THEN @rn := 1 END ) AS rn2 FROM ( SELECT 1 AS a, 3 AS b UNION ALL SELECT 2 AS a, 4 AS b UNION ALL SELECT 1 AS a, 5 AS b UNION ALL SELECT 2 AS a, 6 AS b ) AS t, (SELECT @rn := 0, @prev := NULL) r ORDER BY a, b DESC; "pre-rn-', a, '"'), IF (json_extract(@rn, @prevpath) = b, coalesce(json_extract(@rn, @prernpath), @currn) div 1, @currn ) ), @prernpath ), @currn ) AS rn2, @rn AS debug FROM ( SELECT 1 AS a, 3 AS b UNION ALL SELECT 1 AS a, 5 AS b UNION ALL SELECT 1 AS a, 5 AS b UNION ALL SELECT 2 AS a, 6 AS b ) AS t, (SELECT @rn := '{}') r ORDER BY b DESC; "c-', a, '"'), (coalesce(json_extract(@w, @cpath), 0) + 1) ), @spath ) AS sum2, COUNT(*) OVER w…