WITH t AS ( SELECT 'A' cd, 5 v FROM dual UNION ALL SELECT 'A1', 10 FROM dual UNION ALL SELECT 'A2', 20 FROM dual UNION ALL SELECT 'A3', 25 FROM dual UNION ALL SELECT 'A4', 25 FROM dual UNION ALL SELECT 'A5', 15 FROM dual ) SELECT cd , v , SUM(v) OVER(ORDER BY cd) - v v2 , SUM(v) OVER(ORDER BY cd) v3 FROM t ;