Sobes.tech
Junior — Middle

Wyjaśnij różnice między operatorem HAVING a warunkiem WHERE w SQL i w jakich przypadkach należy ich używać.

sobes.tech AI

Odpowiedź od AI

W SQL, warunek WHERE filtruje wiersze przed grupowaniem, a HAVING robi to po nim.

  • WHERE jest stosowane do pojedynczych wierszy tabeli i ogranicza zbiór danych, który będzie agregowany.
  • HAVING jest stosowane do wyników funkcji agregujących i filtruje grupy utworzone przez instrukcję GROUP BY.

Przykład:

SELECT dział, COUNT(*) as liczba_pracowników
FROM pracownicy
WHERE pensja > 50000  -- filtrujemy pracowników z pensją powyżej 50000
GROUP BY dział
HAVING COUNT(*) > 10    -- wybieramy działy z więcej niż 10 pracownikami

Użyj WHERE do filtrowania danych źródłowych, a HAVING do filtrowania wyników zagregowanych.