Sobes.tech
Junior — Middle

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

sobes.tech AI

Odpoveď od AI

Hlavný rozdiel medzi WHERE a HAVING v SQL:

  • WHERE filtruje riadky pred skupinovaním (GROUP BY). Používa sa na jednotlivé záznamy tabuľky.
  • HAVING filtruje skupiny po vykonaní skupinovania. Používa sa na podmienky na agregačné funkcie (napríklad COUNT, SUM).

Príklad:

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

Tu WHERE vyberá riadky pre skupinovanie, a HAVING filtruje už skupinované údaje.