Sobes.tech
Junior — Middle

Aký je rozdiel medzi operátormi HAVING a WHERE v SQL a kedy ich použiť?

sobes.tech AI

Odpoveď od AI

Operátor WHERE sa používa na filtrovanie riadkov pred skupinovaním údajov. Vyberá riadky, ktoré sa budú podieľať na ďalších operáciách, ako sú agregačné funkcie.

Operátor HAVING sa používa na filtrovanie už skupinovaných údajov, teda po vykonaní GROUP BY. Umožňuje filtrovať skupiny podľa agregačných podmienok.

Príklad:

SELECT department, COUNT(*) AS employee_count
FROM employees
WHERE salary > 50000  -- filtrovanie riadkov podľa platu
GROUP BY department
HAVING COUNT(*) > 5      -- filtrovanie skupín podľa počtu zamestnancov

Zhrnutie:

  • WHERE filtruje jednotlivé záznamy pred skupinovaním.
  • HAVING filtruje skupiny po skupinovaní.

Použite WHERE pre podmienky na jednotlivých poliach, HAVING pre podmienky na agregačných funkciách.