WITH t AS ( SELECT 1 seq, 14 a, 2 b FROM dual UNION ALL SELECT 2, 7, 22 FROM dual UNION ALL SELECT 3, 23, 2 FROM dual UNION ALL SELECT 4, 14, 2 FROM dual UNION ALL SELECT 5, 14, 29 FROM dual ) SELECT seq, a, b , COUNT(c) OVER(ORDER BY seq) c FROM (SELECT seq, a, b , CASE WHEN ROW_NUMBER() OVER(ORDER BY seq) = 1 OR a < b THEN 1 END c FROM t ) ;