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

  • WHERE filtruje wiersze przed grupowaniem i agregacją. Ogranicza zestaw danych, który będzie używany w zapytaniu.
  • HAVING filtruje 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.