Junior — Middle
Czym różnią się warunki HAVING i WHERE podczas tworzenia zapytań 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:
- WHERE filtruje wiersze przed grupowaniem. Używa się go do ograniczenia zestawu danych, które będą agregowane.
- HAVING filtruje grupy po zastosowaniu funkcji agregujących (np. SUM, COUNT).
Przykład:
SELECT dział, COUNT(*) as liczba_pracowników
FROM pracownicy
WHERE pensja > 50000 -- filtracja według pensji przed grupowaniem
GROUP BY dział
HAVING COUNT(*) > 10; -- filtracja grup z liczbą pracowników większą niż 10
Tutaj najpierw wybierani są pracownicy z pensją powyżej 50000 (WHERE), następnie dane są grupowane według działów, a tylko działy z więcej niż 10 pracownikami przechodzą filtr HAVING.