Sobes.tech
Middle

Czym różni się WHERE od HAVING?

sobes.tech AI

Odpowiedź od AI

W SQL operator WHERE służy do filtrowania wierszy przed grupowaniem, czyli ogranicza zbiór danych, które będą brały udział w zapytaniu.

HAVING służy do filtrowania już pogrupowanych danych, czyli po wykonaniu funkcji agregujących i grupowania.

Przykład:

SELECT department, COUNT(*) as employee_count
FROM employees
WHERE salary > 50000  -- filtrujemy pracowników z wynagrodzeniem powyżej 50000
GROUP BY department
HAVING COUNT(*) > 10     -- wybieramy działy, w których jest więcej niż 10 takich pracowników

Tutaj najpierw WHERE wybiera wiersze z wynagrodzeniem powyżej 50000, następnie dane są grupowane według działów, a HAVING filtruje grupy według liczby pracowników.