O czym
Jak zrobić sumę narastającą bezpośrednio w języku SQL. Funkcja SUM, analityczna (okienkowa) – jej zapis i składnia oraz efekty użycia.
Suma narastająca w SQL
W celu zrobienia sumy narastającej bezpośrednio w SQL należy użyć funkcji agregującej w zapisie analitycznym:
funkcja (wyrażenie) OVER ([PARTITION BY wyrażenie] [ORDER BY wyrażenie [definicja_okna]])
W celu policzenia sumy narastającej wystarczy w OVER użyć ORDER BY (spowoduje to użycie funkcji w tzw. trybie okienkowym):
SELECT first_name, last_name, hire_date, salary, SUM(salary) over(ORDER BY hire_date) FROM employees
W powyższym przykładzie suma narastająca zostanie policzona dla kolumny salary względem narastających wartości w kolumnie hire_date. W celu wyliczenia sumy narastającej względem malejących wartości w kolumnie hire_date wystarczy dodać przy sortowaniu DESC.
SELECT first_name, last_name, hire_date, salary, SUM(salary) over(ORDER BY hire_date DESC) FROM employees
Możliwe jest również określenie po ORDER BY więcej niż jednej kolumny. Zamiast funkcji SUM mogą być użyte również inne funkcje agregujące.