Middle
Standardowe pytanie dotyczące SQL: jaka jest różnica między WHERE a HAVING?
sobes.tech AI
Odpowiedź od AI
Główna różnica między WHERE a HAVING w SQL polega na etapie, na którym filtrują dane:
WHEREfiltruje wiersze przed grupowaniem. Używa się go do ograniczenia początkowego zbioru danych.HAVINGfiltruje grupy po zastosowaniu funkcji agregujących i grupowania (GROUP BY).
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 takimi pracownikami
Tutaj WHERE ogranicza początkowe wiersze, a HAVING końcowe grupy.