Sobes.tech
Junior — Middle

Jaký je rozdíl mezi podmínkou HAVING a podmínkou WHERE při práci s SQL dotazy?

sobes.tech AI

Odpověď od AI

Hlavní rozdíl mezi WHERE a HAVING v SQL:

  • WHERE filtruje řádky před seskupením (GROUP BY). Používá se na jednotlivé záznamy tabulky.
  • HAVING filtruje skupiny po seskupení. Používá se pro podmínky na agregační funkce (například COUNT, SUM).

Příklad:

SELECT oddělení, COUNT(*) jako počet_zaměstnanců
FROM zaměstnanci
WHERE plat > 50000    -- filtruje zaměstnance s platem vyšším než 50000
GROUP BY oddělení
HAVING COUNT(*) > 10     -- vybírá oddělení s více než 10 zaměstnanci

Zde WHERE vybírá řádky pro seskupení, a HAVING filtruje již seskupené data.