Funkcje agregujące to funkcje, które działają na zbiorach danych i zwracają pojedyncze wartości.
Załóżmy, że baza danych składa się z jednej tabeli, która wygląda następująco:
id | imię | drugie_imię | nazwisko | wiek |
1 | Jan | Józef | Kowalski | 50 |
2 | Weronika | NULL | Ziętek | 20 |
3 | Mateusz | Marek | Nowak | 20 |
Baza została maksymalnie uproszczona, aby można było sprawdzić poprawność uzyskanych wyników.
Funkcja AVG zwraca średnią wartość.
Ignoruje wartości NULL.
Może występować z argumentem ALL, który jest domyślny lub argumentem DISTINCT.
Typ zwracanego wyniku zależy od typu argumentu podanego przy wywołaniu funkcji.
SELECT AVG(wiek) FROM Klienci zwraca wynik: 30.
SELECT AVG(ALL wiek) FROM Klienci jest równoznaczne z powyższym poleceniem i także zwraca wynik: 30.
SELECT AVG(DISTINCT wiek) FROM Klienci zwraca wynik: 35. Polecenie to uwzględnia bowiem jedynie unikalne wartości, a więc pomija wiek z trzeciego wiersza (20).
Funkcja COUNT zwraca liczbę elementów.
Może, lecz nie musi ignorować wartości NULL.
Może występować z argumentem ALL, który jest domyślny lub argumentem DISTINCT, lecz również bez żadnych argumentów (*).
Typ zwracanego wyniku to int.
SELECT COUNT(*) FROM Klienci zwraca wynik: 3.
SELECT COUNT(drugie_imię) FROM Klienci zwraca wynik: 2. Polecenie to uwzględnia bowiem jedynie wartości różne od NULL, a więc pomija drugiego klienta.
SELECT COUNT(ALL drugie_imię) FROM Klienci jest równoznaczne z powyższym poleceniem i także zwraca wynik: 2.
SELECT COUNT(DISTINCT wiek) FROM Klienci zwraca wynik: 2. Polecenie to uwzględnia bowiem jedynie unikalne (i różne od NULL) wartości, a więc pomija wiek z trzeciego wiersza (20).
Funkcja MAX zwraca największą wartość.
Ignoruje wartości NULL.
Może występować z argumentem ALL, który jest domyślny lub argumentem DISTINCT.
Typ zwracanego wyniku jest identyczny z typem argumentu podanego przy wywołaniu funkcji.
SELECT MAX(wiek) FROM Klienci zwraca wynik: 50.
SELECT MAX(ALL wiek) FROM Klienci jest równoznaczne z powyższym poleceniem i także zwraca wynik: 50.
SELECT MAX(DISTINCT wiek) FROM Klienci również zwraca wynik: 50. Nie ma bowiem znaczenia, ile razy pojawi się największy wiek, ale jego wartość. Argument DISTINCT wykorzystywany jest więc jedynie do zachowania zgodności z normami ISO.
Funkcja MIN zwraca najmniejszą wartość.
Ignoruje wartości NULL.
Może występować z argumentem ALL, który jest domyślny lub argumentem DISTINCT.
Typ zwracanego wyniku jest identyczny z typem argumentu podanego przy wywołaniu funkcji.
SELECT MIN(wiek) FROM Klienci zwraca wynik: 20.
SELECT MIN(ALL wiek) FROM Klienci jest równoznaczne z powyższym poleceniem i także zwraca wynik: 20.
SELECT MIN(DISTINCT wiek) FROM Klienci również zwraca wynik: 20. Nie ma bowiem znaczenia, ile razy pojawi się najmniejszy wiek, ale jego wartość. Argument DISTINCT wykorzystywany jest więc jedynie do zachowania zgodności z normami ISO.
Funkcja STDEVP zwraca wartość odchylenia standardowego.
Ignoruje wartości NULL.
Może występować z argumentem ALL, który jest domyślny lub argumentem DISTINCT.
Typ zwracanego wyniku to float.
SELECT STDEVP(wiek) FROM Klienci zwraca wynik: 14,142135623731.
SELECT STDEVP(ALL wiek) FROM Klienci jest równoznaczne z powyższym poleceniem i także zwraca wynik: 14,142135623731.
SELECT STDEVP(DISTINCT wiek) FROM Klienci zwraca wynik: 15. Polecenie to uwzględnia bowiem jedynie unikalne wartości, a więc pomija wiek z trzeciego wiersza (20).
Funkcja SUM zwraca sumę wartości.
Ignoruje wartości NULL.
Może występować z argumentem ALL, który jest domyślny lub argumentem DISTINCT.
Typ zwracanego wyniku zależy od typu argumentu podanego przy wywołaniu funkcji.
SELECT SUM(wiek) FROM Klienci zwraca wynik: 90.
SELECT SUM(ALL wiek) FROM Klienci jest równoznaczne z powyższym poleceniem i także zwraca wynik: 90.
SELECT SUM(DISTINCT wiek) FROM Klienci zwraca wynik: 70. Polecenie to uwzględnia bowiem jedynie unikalne wartości, a więc pomija wiek z trzeciego wiersza (20).
Funkcja VARP zwraca wariancję.
Ignoruje wartości NULL.
Może występować z argumentem ALL, który jest domyślny lub argumentem DISTINCT.
Typ zwracanego wyniku to float.
SELECT VARP(wiek) FROM Klienci zwraca wynik: 200.
SELECT VARP(ALL wiek) FROM Klienci jest równoznaczne z powyższym poleceniem i także zwraca wynik: 200.
SELECT VARP(DISTINCT wiek) FROM Klienci zwraca wynik: 225. Polecenie to uwzględnia bowiem jedynie unikalne wartości, a więc pomija wiek z trzeciego wiersza (20).