SQL: Funkcje agregujące | AVG, MIN, MAX, SUM, COUNT

Baza danych do pobrania: dziennik
AVG
Funkcja AVG służy do obliczenia średniej.
Składnia
SELECT AVG(kolunma1) FROM nazwa_tabeli;
Wypiszmy na ekran średnią ze wszystkich wystawionych ocen w dzienniku:
SELECT AVG(ocena) FROM ocena;
+------------+ | AVG(ocena) | +------------+ | 3.0175 | +------------+
Sprawdźmy jeszcze jaka jest średnia ocen z przedmiotu o id = 10.
SELECT AVG(ocena) FROM ocena WHERE id_przedmiot=10;
+------------+ | AVG(ocena) | +------------+ | 2.9971 | +------------+
SUM
Funkcja SUM służy do obliczenia sumy. Zasada działania jest identyczna jak w przypadku AVG.
Składnia
SELECT SUM(kolunma1) FROM nazwa_tabeli;
Wypiszmy na ekran sumę wszystkich wystawionych ocen w dzienniku:
SELECT SUM(ocena) FROM ocena;
+------------+ | SUM(ocena) | +------------+ | 30175 | +------------+
MIN
Funkcja MIN służy do znalezienia najmniejszej wartości.
Składnia
SELECT MIN(kolunma1) FROM nazwa_tabeli;
Sprawdźmy jaka jest najmniejsza waga ocen wśród kategorii ocen:
SELECT MIN(waga) FROM kategorie_ocen;
+-----------+ | MIN(waga) | +-----------+ | 1 | +-----------+
MAX
Funkcja MAX służy do znalezienia największej wartości.
Składnia
SELECT MAX(kolunma1) FROM nazwa_tabeli;
Analogicznie do poprzedniego przykładu sprawdźmy jaka jest największa waga ocen wśród kategorii ocen:
SELECT MAX(waga) FROM kategorie_ocen;
+-----------+ | MAX(waga) | +-----------+ | 6 | +-----------+
COUNT
Funkcja COUNT służy do zliczenia ilości elementów spełniających zadane kryteria wyszukiwania.
Składnia
SELECT COUNT(*) FROM nazwa_tabeli;
Sprawdźmy ile jest ocen w dzienniku:
SELECT COUNT(*) FROM ocena;
+----------+ | COUNT(*) | +----------+ | 10000 | +----------+
Aby policzyć ile jest elementów bez powtórzeń wykorzystamy słowo kluczowe DISTINCT.
Składnia
SELECT COUNT(DISTINCT kolumna) FROM nazwa_tabeli;
Zobaczmy zatem ile jest różnych ocen w tabeli ocena:
SELECT COUNT(DISTINCT ocena) FROM ocena;
+------------------------+ | COUNT(DISTINCT ocena) | +------------------------+ | 5 | +------------------------+