GROUP BY i HAVING
Kurs SQL · Wyjaśnienie, przykłady, oczekiwany wynik i ćwiczenie.
GROUP BY grupuje wiersze, a HAVING filtruje wyniki grupowania.
Jak to działa?
Warunki dotyczące pojedynczych rekordów umieszczaj w WHERE. Warunki dotyczące agregatów zapisuj w HAVING.
Przykład 1 — poznaj zapis
SELECT city, COUNT(*) AS liczba
FROM users
GROUP BY city
HAVING COUNT(*) >= 2;
Wynik pokazuje miasta, w których są co najmniej dwie osoby.
Przeczytaj kod linijka po linijce
SELECT city, COUNT(*) AS liczbaWybieramy kolumny lub obliczenia, które mają trafić do wyniku.FROM usersWskazujemy tabelę źródłową.GROUP BY cityGrupujemy wyniki lub filtrujemy gotowe grupy.
Miasta, w których jest co najmniej dwóch użytkowników, wraz z ich liczbą.
Przykład 2 — podobny problem, inne dane
Teraz przyjrzyj się drugiemu przykładowi. Zwróć uwagę na to, co zmieniło się w kodzie, a co w wyniku. Spróbuj przewidzieć rezultat przed przeczytaniem odpowiedzi.
SELECT city, MAX(age) AS najstarszy FROM users GROUP BY city;
Największy wiek w każdym mieście.
Wróć do pierwszego przykładu, zmień jedną wartość i spróbuj samodzielnie przewidzieć wynik. Następnie uruchom kod i porównaj rezultat. W ten sposób nauczysz się nie tylko przepisywać instrukcje, ale rozumieć ich działanie.
Spróbuj samodzielnie
Policz średni wiek w każdym mieście.
Jeśli rozumiesz przykład, oznacz lekcję jako ukończoną i przejdź dalej.