Sobes.tech
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.