Podstawy•LEKCJA 13 / 26

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

  1. SELECT city, COUNT(*) AS liczbaWybieramy kolumny lub obliczenia, które mają trafić do wyniku.
  2. FROM usersWskazujemy tabelę źródłową.
  3. GROUP BY cityGrupujemy wyniki lub filtrujemy gotowe grupy.
Oczekiwany wynik / efektpo uruchomieniu przykładu
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;
Wynik drugiego przykładupo uruchomieniu przykładu
Największy wiek w każdym mieście.
Sprawdź, czy rozumiesz

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.

To już koniec tej lekcji.

Jeśli rozumiesz przykład, oznacz lekcję jako ukończoną i przejdź dalej.