Twoje Centrum Szkoleniowe

Nauczmy się dziś czegoś nowego!

Kurs programowania - SQL

Grupowanie wyników (GROUP BY)

GROUP BY to bardzo przydatna klauzula w SQL, która pozwala grupować rekordy w tabeli według jednej lub kilku kolumn. Dzięki GROUP BY możemy używać funkcji agregujących, takich jak COUNT, SUM, AVG, MIN i MAX, aby uzyskać podsumowania dla każdej grupy. Na przykład możemy policzyć liczbę uczniów w każdej klasie albo obliczyć całkowitą sprzedaż dla każdego produktu.

Składnia GROUP BY

GROUP BY jest używane razem z funkcjami agregującymi, aby pogrupować dane według określonych kolumn.

Podstawowa składnia:

SELECT kolumna, funkcja_agregująca(kolumna) 
FROM tabela 
GROUP BY kolumna;

W tej składni wybieramy kolumnę, według której chcemy grupować dane, a następnie stosujemy funkcję agregującą, aby uzyskać wyniki dla każdej grupy.

Przykłady Użycia GROUP BY

Przykład 1: Grupowanie uczniów według klasy

Przykład: Policz, ilu uczniów jest w każdej klasie.

SELECT klasa, COUNT(*) AS liczba_uczniow 
FROM Uczen 
GROUP BY klasa;

W tym przykładzie GROUP BY klasa grupuje wszystkich uczniów według ich klasy, a COUNT(*) liczy, ilu uczniów jest w każdej z tych klas. Wynik pokazuje liczbę uczniów w każdej klasie.

Przykład 2: Obliczanie średniej ceny produktów według kategorii

Przykład: Oblicz średnią cenę produktów w każdej kategorii.

SELECT kategoria, AVG(cena) AS srednia_cena 
FROM Produkty 
GROUP BY kategoria;

W tym przykładzie GROUP BY kategoria grupuje produkty według ich kategorii, a AVG(cena) oblicza średnią cenę produktów w każdej kategorii.

Przykład 3: Suma sprzedaży według produktu

Przykład: Oblicz całkowitą wartość sprzedaży dla każdego produktu.

SELECT nazwa_produktu, SUM(sprzedaz) AS calkowita_sprzedaz 
FROM Sprzedaz 
GROUP BY nazwa_produktu;

W tym przykładzie GROUP BY nazwa_produktu grupuje wszystkie rekordy według nazw produktów, a SUM(sprzedaz) oblicza całkowitą sprzedaż dla każdego z tych produktów.

Użycie GROUP BY z HAVING

Czasami po grupowaniu danych chcemy filtrować te grupy na podstawie wyników funkcji agregujących. Do tego służy klauzula HAVING. HAVING działa podobnie do WHERE, ale jest używana do filtrowania wyników po zastosowaniu GROUP BY.

Przykład: Znajdź kategorie produktów, które mają średnią cenę większą niż 50.

SELECT kategoria, AVG(cena) AS srednia_cena 
FROM Produkty 
GROUP BY kategoria 
HAVING AVG(cena) > 50;

W tym przykładzie HAVING AVG(cena) > 50 filtruje grupy, aby pokazać tylko te kategorie, w których średnia cena produktu jest większa niż 50.

Testy przypięte do lekcji
Aby uzyskać dostęp do testów i ćwiczeń interaktywnych - Zaloguj się
Aby widzieć ocenę lekcji - Zaloguj się