[SQL] Funkcje agregujące

opublikował: SELECT, 2014-01-06

Definicja

Funkcje agregujące to funkcje, które działają na zbiorach danych i zwracają pojedyncze wartości.

Przykładowe dane

Załóżmy, że baza danych składa się z jednej tabeli, która wygląda następująco:

Klienci
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.

Podstawowe funkcje agregujące

AVG

  • 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).

COUNT

  • 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).

MAX

  • 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.

MIN

  • 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.

STDEVP

  • 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).

SUM

  • 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).

VARP

  • 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).


Zarejestruj się albo zaloguj aby dodać komentarz


Brak komentarzy.
wszystkie oferty

 

 

 

 
 
 

Kalendarz wydarzeń

WSZYSTKIE WYDARZENIA