Sobes.tech
Junior — Middle

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

sobes.tech AI

Odpověď od AI

V SQL se podmínky WHERE a HAVING používají k filtrování dat, ale aplikují se v různých fázích zpracování dotazu:

  • WHERE filtruje řádky před seskupením a agregací. Omezí množinu dat, která se použije v dotazu.
  • HAVING filtruje skupiny po použití agregačních funkcí (například SUM, COUNT, AVG). Používá se k omezení výsledků agregace.

Příklad:

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

Zde WHERE vybírá zaměstnance s platem vyšším než 50000, a HAVING filtruje oddělení, kde je více než 10 zaměstnanců.