Sobes.tech
Middle

Aký je rozdiel medzi WHERE a HAVING?

sobes.tech AI

Odpoveď od AI

V SQL-e sa operátor WHERE slúži na filtrovanie riadkov pred skupinovaním, teda obmedzuje množinu dát, ktoré sa budú podieľať na dopyte.

HAVING sa používa na filtrovanie už skupinovaných dát, teda po vykonaní agregačných funkcií a skupinovaní.

Príklad:

SELECT department, COUNT(*) as employee_count
FROM employees
WHERE salary > 50000  -- filtrujeme zamestnancov s platom vyšším ako 50000
GROUP BY department
HAVING COUNT(*) > 10     -- vyberáme oddelenia s viac ako 10 takými zamestnancami

Tu najprv WHERE filtruje riadky s platom nad 50000, potom sú dáta skupinované podľa oddelení a HAVING filtruje skupiny podľa počtu zamestnancov.