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ů.