8. Grupowanie GROUP BY 🎱 - ritaly/wprowadzenie-do-sql GitHub Wiki

Do tej pory zabrakło nam jeszcze jednej przydatnej rzeczy związanej z zarządzaniem tabelą pracowników - grupowania.

Co gdybyśmy chcieli policzyć:

  • Ilu pracowników nosi takie samo nazwisko?
  • Ilu pracowników nosi takie samo imię?
  • Ilu pracowników ma taką samą pensję lub pensję w zadanym zakresie?
SELECT last_name, COUNT(*)
FROM employee

Zwróci błąd 🚨

Tutaj pojawia się nowe polecenie GROUP BY, a proces wybierania grup danych na podstawie wspólnych cech to agregacja danych.

⚠️ Groupowanie zawsze odbywa się po filtrowaniu!

💡 Kolejność poleceń dla przypomnienia: SELECT, FROM, WHERE, GROUP BY, ORDER BY

Naprawmy przykład powyżej:

SELECT last_name, COUNT(*)
FROM employee
GROUP BY last_name;

Zadania:

  1. Wybierz wszystkie produkty z tabeli product. Przyjrzyj się uważnie. Jaka kolumna nadaje się do grupowania? Pogrupuj produkty wg działów do jakich należą - tj. ile produktów znajduje się w każdym dziale.
  2. Znajdź pracowników, którzy zarabiają między 60 a 90 tys. Posortuj ich zarobki malejąco. Pogrupuj ilu z nich zarabia tyle samo. Następnie zmień sortowanie tak, by sortowało po liczbie zliczonych pracowników.