Sobes.tech
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.