WITH T(gb, amt) AS ( SELECT '01', 5000 FROM DUAL UNION ALL SELECT '02', 5000 FROM DUAL UNION ALL SELECT '03', 18000 FROM DUAL UNION ALL SELECT '04', 15000 FROM DUAL UNION ALL SELECT '05', 15000 FROM DUAL UNION ALL SELECT '06', 5000 FROM DUAL UNION ALL SELECT '07', 5000 FROM DUAL UNION ALL SELECT '08', 18000 FROM DUAL ) SELECT gb, amt , SUM(seq) OVER(ORDER BY gb) AS seq FROM ( SELECT gb, amt , DECODE(amt, LAG(amt, 1) OVER(ORDER BY gb), 0, 1) AS seq FROM T ) ORDER BY gb