Junior — Middle
Aký je rozdiel medzi podmienkou WHERE a HAVING pri práci s SQL dotazmi?
sobes.tech AI
Odpoveď od AI
WHERE a HAVING sú podmienky filtrovania v SQL, ale aplikujú sa v rôznych fázach spracovania údajov.
WHEREfiltruje riadky pred zoskupením. Používa sa na výber záznamov na úrovni pôvodných údajov.HAVINGfiltruje skupiny vytvorené príkazomGROUP BY. Aplikujú sa po agregácii.
Príklad:
SELECT oddelenie, COUNT(*) ako počet_zamestnancov
FROM zamestnanci
WHERE plat > 50000 -- filtrujeme zamestnancov s platom > 50000
GROUP BY oddelenie
HAVING COUNT(*) > 10 -- vyberáme oddelenia s viac ako 10 zamestnancami
Najprv sú vybraní zamestnanci s platom nad 50000 (WHERE), potom sú údaje zoskupené podľa oddelení, a nakoniec sú vybrané len tie oddelenia, kde je počet zamestnancov väčší ako 10 (HAVING).