Junior — Middle
Vysvetlite rozdiel medzi operátorom HAVING a podmienkou WHERE v SQL a kedy ich použiť.
sobes.tech AI
Odpoveď od AI
V SQL-e podmienka WHERE filtruje riadky pred skupinovaním, zatiaľ čo HAVING to robí po skupinovaní.
- WHERE sa aplikuje na jednotlivé riadky tabuľky a obmedzuje množinu dát, ktorá bude agregovaná.
- HAVING sa aplikuje na výsledky agregačných funkcií a filtruje skupiny vytvorené príkazom GROUP BY.
Príklad:
SELECT oddelenie, COUNT(*) ako počet_zamestnancov
FROM zamestnanci
WHERE plat > 50000 -- filtrujeme zamestnancov s platom nad 50000
GROUP BY oddelenie
HAVING COUNT(*) > 10 -- vyberáme oddelenia s viac ako 10 zamestnancami
Použite WHERE na filtrovanie pôvodných dát a HAVING na filtrovanie agregovaných výsledkov.