SQL> SQL> select * from t1_ order by c1,c2; C C2 - ---------- a 1 a 1 a 2 a 3 b 2 b 3 b 3 b 4 c 1 c 3 c 5 C C2 - ---------- d 3 d 7 d 7 d 7 d 8 16 rows selected. SQL> SQL> -- Sum the whole table SQL> select c1,c2, sum(c2) over () from t1_; C C2 SUM(C2)OVER() - ---------- ------------- a 1 60 a 1 60 a 2 60 a 3 60 b 2 60 b 3 60 b 3 60 b 4 60 c 1 60 c 3 60 c 5 60 C C2 SUM(C2)OVER() - ---------- ------------- d 3 60 d 7 60 d 7 60 d 7 60 d 8 60 16 rows selected. SQL> -- One sum per partition SQL> select c1,c2, sum(c2) over (partition by c1) total from t1_; C C2 TOTAL - ---------- ---------- a 1 7 a 1 7 a 2 7 a 3 7 b 2 12 b 3 12 b 3 12 b 4 12 c 1 9 c 3 9 c 5 9 C C2 TOTAL - ---------- ---------- d 3 32 d 7 32 d 7 32 d 7 32 d 8 32 16 rows selected. SQL> -- One sum per 'c2' - the sort column SQL> select c1,c2, sum(c2) over (order by c2) total from t1_; C C2 TOTAL - ---------- ---------- a 1 3 a 1 3 c 1 3 a 2 7 b 2 7 a 3 22 d 3 22 b 3 22 b 3 22 c 3 22 b 4 26 C C2 TOTAL - ---------- ---------- c 5 31 d 7 52 d 7 52 d 7 52 d 8 60 16 rows selected. SQL> -- Interesting way to get sum. Probably not very useful. SQL> select c1, c2, rownum, sum(c2) over (order by rownum) sum_c2 from t1_; C C2 ROWNUM SUM_C2 - ---------- ---------- ---------- a 1 1 1 a 1 2 2 a 2 3 4 a 3 4 7 b 2 5 9 b 3 6 12 b 3 7 15 b 4 8 19 c 1 9 20 c 3 10 23 c 5 11 28 C C2 ROWNUM SUM_C2 - ---------- ---------- ---------- d 3 12 31 d 7 13 38 d 7 14 45 d 7 15 52 d 8 16 60 16 rows selected. SQL> -- Most common use SQL> select c1,c2, sum(c2) over (partition by c1 order by c2) total from t1_; C C2 TOTAL - ---------- ---------- a 1 2 a 1 2 a 2 4 a 3 7 b 2 2 b 3 8 b 3 8 b 4 12 c 1 1 c 3 4 c 5 9 C C2 TOTAL - ---------- ---------- d 3 3 d 7 24 d 7 24 d 7 24 d 8 32 16 rows selected. SQL> SQL> drop table t1_; Table dropped. SQL> SQL> spool off