Agregacja i grupowanie

1. Agregacja danych w MySQL

Agregacja polega na wykonywaniu obliczeń na wielu wierszach i zwracaniu jednej wartości zbiorczej. W MySQL realizuje się ją za pomocą funkcji agregujących.

Najważniejsze funkcje agregujące:

  • COUNT() – liczy wiersze
  • SUM() – suma wartości
  • AVG() – średnia
  • MIN() – najmniejsza wartość
  • MAX() – największa wartość

Przykład: liczba uczniów w szkole


2. Grupowanie danych – GROUP BY

Instrukcja GROUP BY służy do dzielenia danych na grupy, a następnie wykonywania agregacji osobno dla każdej grupy.

Schemat:


3. Przykłady agregacji i grupowania w Twojej bazie

3.1. Liczba uczniów w każdej klasie

➡ Pokazuje, ilu uczniów jest w każdej klasie.


3.2. Średnia ocena z każdego przedmiotu

➡ Agregacja AVG() + grupowanie po przedmiocie.


3.3. Liczba ocen wystawionych każdemu uczniowi

➡ Jeden wiersz = jeden uczeń.


3.4. Najwyższa i najniższa ocena z każdego przedmiotu


3.5. Średnie zarobki nauczycieli według przedmiotu


4. Filtrowanie grup – HAVING

  • WHERE → filtruje wiersze przed grupowaniem
  • HAVING → filtruje wyniki agregacji

Przykład: przedmioty, z których średnia ocena > 4.5


5. GROUP BY a kolumny w SELECT

✔ Kolumny w SELECT muszą:

  • być w GROUP BY lub
  • być objęte funkcją agregującą

❌ Błąd:

✔ Poprawnie:


6. Podsumowanie

  • Agregacja = liczenie, sumowanie, uśrednianie danych
  • GROUP BY = dzielenie danych na grupy
  • HAVING = warunki dla wyników agregacji
  • Najczęstsze funkcje: COUNT, AVG, SUM, MIN, MAX
  • Bardzo często łączy się GROUP BY z JOIN