Sobes.tech
Junior — Middle

Jaki jest cel operatora HAVING w SQL i czym różni się od WHERE?

sobes.tech AI

Odpowiedź od AI

Klauzula HAVING w SQL jest używana do filtrowania wyników po grupowaniu danych za pomocą GROUP BY. Pozwala na ustawienie warunków dla danych zagregowanych.

Różnica od WHERE:

  • WHERE filtruje wiersze przed grupowaniem, działa na pojedynczych rekordach.
  • HAVING filtruje grupy po zagregowaniu.

Przykład:

SELECT dział, COUNT(*) AS liczba_pracowników
FROM pracownicy
GROUP BY dział
HAVING COUNT(*) > 10;

Tutaj nie można użyć WHERE do filtrowania po COUNT(*), ponieważ jest to funkcja agregująca, a HAVING pozwala wybrać tylko te działy, gdzie jest więcej niż 10 pracowników.