Sobes.tech
Junior — Middle

Aký je rozdiel medzi podmienkami WHERE a HAVING pri práci s SQL dotazmi?

sobes.tech AI

Odpoveď od AI

V SQL-e sa podmienkami WHERE a HAVING sa používajú na filtrovanie dát, ale aplikujú sa v rôznych fázach spracovania dotazu:

  • WHERE filtruje riadky pred skupinovaním a agregáciou. Obmedzuje množinu dát, ktorá sa použije v dotaze.
  • HAVING filtruje skupiny po použití agregačných funkcií (napríklad SUM, COUNT, AVG). Používa sa na obmedzenie výsledkov agregácie.

Príklad:

SELECT oddelenie, COUNT(*) ako počet_zamestnancov
FROM zamestnanci
WHERE plat > 50000       -- filtruje zamestnancov s platom > 50000
GROUP BY oddelenie
HAVING COUNT(*) > 10;        -- vyberá oddelenia s viac ako 10 zamestnancami

Tu WHERE vyberá zamestnancov s platom vyšším ako 50000, a HAVING filtruje oddelenia, kde je viac ako 10 zamestnancov.