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.