Junior — Middle
Jaký je rozdíl mezi podmínkami HAVING a WHERE při tvorbě SQL dotazů?
sobes.tech AI
Odpověď od AI
V SQL slouží podmínky WHERE a HAVING k filtrování dat, ale jsou aplikovány v různých fázích zpracování dotazu:
- WHERE filtruje řádky před seskupením. Používá se k omezení množiny dat, která budou agregována.
- HAVING filtruje skupiny po použití agregačních funkcí (například SUM, COUNT).
Příklad:
SELECT oddělení, COUNT(*) jako počet_zaměstnanců
FROM zaměstnanci
WHERE plat > 50000 -- filtrování podle platu před seskupením
GROUP BY oddělení
HAVING COUNT(*) > 10; -- filtrování skupin s více než 10 zaměstnanci
Zde jsou nejprve vybráni zaměstnanci s platem vyšším než 50000 (WHERE), poté jsou data seskupena podle oddělení a pouze oddělení s více než 10 zaměstnanci projdou filtrem HAVING.