/* Accumulate total amount from all previous rows using implicit frame */ SELECT payment_num, vendor, description, pay_date, amount, SUM(amount) OVER (ORDER BY payment_num) AS accum_total FROM payment; /* Same, but using an explicit frame */ SELECT payment_num, vendor, description, pay_date, amount, SUM(amount) OVER (ORDER BY payment_num ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS accum_total FROM payment; /* Accumulate total amount by vendor */ SELECT payment_num, vendor, description, pay_date, amount, SUM(amount) OVER (PARTITION BY vendor ORDER BY payment_num) AS accum_total FROM payment; /* A rolling/sliding 2 rows average */ SELECT payment_num, vendor, description, pay_date, amount, AVG(amount) OVER (ORDER BY payment_num ROWS BETWEEN 1 PRECEDING and CURRENT ROW) AS accum_total FROM payment; /* Running total of student_id using implicit frame */ SELECT student_id, SUM(student_id) OVER (ORDER BY student_id) AS accum FROM student;