Sobes.tech
Junior — Middle

Vysvětlete rozdíly mezi operátorem HAVING a podmínkou WHERE v SQL a v jakých případech je vhodné je použít.

sobes.tech AI

Odpověď od AI

V SQL filtruje podmínka WHERE řádky před seskupením, zatímco HAVING to dělá po seskupení.

  • WHERE se aplikuje na jednotlivé řádky tabulky a omezuje množinu dat, která bude agregována.
  • HAVING se aplikuje na výsledky agregačních funkcí a filtruje skupiny vytvořené příkazem GROUP BY.

Příklad:

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

Použijte WHERE k filtrování původních dat a HAVING k filtrování agregovaných výsledků.