GROUP BY w SQL
Słownik kwalifikacji INF.03 - Tworzenie i administrowanie stronami i aplikacjami internetowymi oraz bazami danych
Co to jest GROUP BY w SQL?
GROUP BY to klauzula SQL służąca do grupowania rekordów według jednej lub kilku kolumn. Najczęściej używa się jej razem z funkcjami agregującymi, takimi jak COUNT(), SUM(), AVG(), MIN() i MAX().
GROUP BY nie jest tym samym co DISTINCT. Obie klauzule mogą sprawić, że w wyniku pojawią się unikalne wartości, ale mają inne zastosowanie.
Przykład
SELECT klasa, COUNT(*) AS liczba_uczniow
FROM uczniowie
GROUP BY klasa;
Zapytanie pogrupuje uczniów według klasy i policzy, ilu uczniów jest w każdej klasie.
Przykładowy wynik:
klasa | liczba_uczniow
3A | 24
3B | 21
4A | 19
GROUP BY z wieloma kolumnami
SELECT klasa, plec, COUNT(*)
FROM uczniowie
GROUP BY klasa, plec;
W tym przypadku rekordy zostaną pogrupowane według klasy oraz płci.
Różnica między GROUP BY a DISTINCT
SELECT DISTINCT klasa
FROM uczniowie;
To zapytanie pokaże unikalne klasy.
SELECT klasa, COUNT(*)
FROM uczniowie
GROUP BY klasa;
To zapytanie nie tylko pokaże klasy, ale także policzy rekordy w każdej grupie.
Ważne na egzaminie
Jeśli pytanie mówi o danych „zgrupowanych według pola”, chodzi o GROUP BY, a nie o DISTINCT.