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 wierszeSUM()– suma wartościAVG()– średniaMIN()– 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 grupowaniemHAVING→ 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 BYlub - 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 BYzJOIN