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

  • WHERE filtruje wiersze przed grupowaniem. Używa się go do ograniczenia początkowego zbioru danych.
  • HAVING filtruje 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.