AVG, MAX, MIN, SUM – funkcje grupujące cz. 1 – Kurs SQL
Zapoznajmy się teraz z funkcjami grupującymi dostępnymi w języku SQL
. Mamy ich kilka do wyboru. Należy pamiętać, że stosując funkcje grupujące względem jakiś kolumn należy dodać klauzulę GROUP BY
o której pisałem w artykule: GROUP BY – grupowanie wyniku zapytania. Do zaprezentowania funkcji wykorzystamy ponownie tabelę wynagrodzenia
widoczną poniżej. Tabela zawiera tylko miesiące kwiecień i maj roku 2021, więc w przykładowych zapytaniach nie używałem już warunku: WHERE miesiac IN (4,5) and rok='2021'
.
AVG
– funkcja zwracająca średnią wartość z danej kolumny, bądź grupy określonej w klauzuli GROUP BY
. Jeżeli chcemy otrzymać informację, jaka była średnia wartość wynagrodzenia w miesiącach kwiecień i maj w roku 2021 wykonamy zapytanie:
SELECT miesiac, rok, AVG(wynagrodzenie) FROM wynagrodzenia GROUP BY miesiac, rok;
Otrzymaliśmy wynik:
Możemy też sprawdzić jaka była średnia wartość wynagrodzenia w całej dostępnej tabeli. W tym przypadku nie używamy innej kolumny niż wynagrodzenie
, dlatego nie musimy stosować klauzuli GROUP BY
. Zapytanie wygląda teraz następująco:
SELECT AVG(wynagrodzenie) FROM wynagrodzenia;
MAX
– funkcja zwracająca maksymalną wartość z danej kolumny, bądź grupy określonej w klauzuli GROUP BY
. Jeżeli chcemy otrzymać informację jaka była najwyższa wartość wynagrodzenia w miesiącach kwiecień i maj w roku 2021 wykonamy zapytanie:
SELECT miesiac, rok, MAX(wynagrodzenie) FROM wynagrodzenia GROUP BY miesiac, rok;
Otrzymaliśmy wynik:
Dla otrzymania maksymalnej wartości dostępnej w tabeli wykonamy zapytanie:
SELECT MAX(wynagrodzenie) FROM wynagrodzenia;
Wynik zapytania:
MIN
– funkcja zwracająca minimalną wartość z danej kolumny, bądź grupy określonej w klauzuli GROUP BY
. Jeżeli chcemy otrzymać informację jaka była najniższa wartość wynagrodzenia w miesiącach kwiecień i maj w roku 2021 wykonamy zapytanie:
SELECT miesiac, rok, MIN(wynagrodzenie) FROM wynagrodzenia GROUP BY miesiac, rok;
Wynik:
Dla minimalnej wartości w tabeli:
SELECT MIN(wynagrodzenie) FROM wynagrodzenia;
Wynik:
SUM
– funkcja zwracająca sumę wartość z danej kolumny, bądź grupy określonej w klauzuli GROUP BY
. Jeżeli chcemy otrzymać informację jaka była sumaryczna wartość wynagrodzenia w miesiącach kwiecień i maj w roku 2021 wykonamy zapytanie:
SELECT miesiac, rok, SUM(wynagrodzenie) FROM wynagrodzenia GROUP BY miesiac, rok;
W wyniku otrzymamy:
Możemy też oczywiście zsumować wynagrodzenie dla w całej tabeli. W tym przypadku nie stosujemy GROUP BY
. Spójrzmy na przykład SQL
:
SELECT SUM(wynagrodzenie) FROM wynagrodzenia;
W wyniku otrzymamy wartość: