Bazy danych Oracle – suma narastająca w SQL

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.

 

About Rafal Stryjek

My LinkedIn profile. Passionate about data. Data Warehousing Expert. Snowflake Data SuperHero & Oracle ACE Associate. International conferences Speaker: Snowflake Build Summit-BUILD.local 2021, Oracle Open World, DOAG, UKOUG, APEX World,.. Visit dataconsulting.pl website!
This entry was posted in Oracle SQL Zaawansowany, SQL and tagged , . Bookmark the permalink.

Leave a Reply