Junior — Middle
Jaka jest różnica między warunkami WHERE a HAVING podczas pracy z zapytaniami SQL?
sobes.tech AI
Odpowiedź od AI
W SQL warunki WHERE i HAVING służą do filtrowania danych, ale są stosowane na różnych etapach przetwarzania zapytania:
WHEREfiltruje wiersze przed grupowaniem i agregacją. Ogranicza zestaw danych, który będzie używany w zapytaniu.HAVINGfiltruje grupy po zastosowaniu funkcji agregujących (np.SUM,COUNT,AVG). Służy do ograniczenia wyników agregacji.
Przykład:
SELECT dział, COUNT(*) as liczba_pracowników
FROM pracownicy
WHERE pensja > 50000 -- filtrujemy pracowników z pensją > 50000
GROUP BY dział
HAVING COUNT(*) > 10; -- wybieramy działy z więcej niż 10 pracownikami
Tutaj WHERE wybiera pracowników z pensją powyżej 50000, a HAVING filtruje działy, w których jest więcej niż 10 pracowników.