Junior — Middle
Jaký je rozdíl mezi operátory HAVING a WHERE v SQL a kdy je používat?
sobes.tech AI
Odpověď od AI
Operátor WHERE se používá k filtrování řádků před seskupením dat. Vybere řádky, které se budou účastnit dalších operací, například agregačních funkcí.
Operátor HAVING se používá k filtrování již seskupených dat, tj. po provedení GROUP BY. Umožňuje filtrovat skupiny podle agregačních podmínek.
Příklad:
SELECT department, COUNT(*) AS employee_count
FROM employees
WHERE salary > 50000 -- filtrování řádků podle platu
GROUP BY department
HAVING COUNT(*) > 5 -- filtrování skupin podle počtu zaměstnanců
Shrnutí:
- WHERE filtruje jednotlivé záznamy před seskupením.
- HAVING filtruje skupiny po seskupení.
Použijte WHERE pro podmínky na jednotlivá pole, HAVING pro podmínky na agregační funkce.