Sobes.tech
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.