Junior — Middle
Jaka jest różnica między warunkiem HAVING a warunkiem WHERE podczas pracy z zapytaniami SQL?
sobes.tech AI
Odpowiedź od AI
Główna różnica między WHERE a HAVING w SQL:
- WHERE filtruje wiersze przed grupowaniem (GROUP BY). Dotyczy pojedynczych rekordów tabeli.
- HAVING filtruje grupy po wykonaniu grupowania. Używa się go do warunków na funkcje agregujące (np. COUNT, SUM).
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, w których jest więcej niż 10 pracowników
Tutaj WHERE wybiera wiersze do grupowania, a HAVING filtruje już pogrupowane dane.