Sobes.tech
Junior — Middle

Jaký je účel operátoru HAVING v SQL a v čem se liší od WHERE?

sobes.tech AI

Odpověď od AI

Klauzule HAVING v SQL se používá k filtrování výsledků po seskupení dat pomocí GROUP BY. Umožňuje stanovit podmínky pro agregovaná data.

Rozdíl od WHERE:

  • WHERE filtruje řádky před seskupením, pracuje s jednotlivými záznamy.
  • HAVING filtruje skupiny po agregaci.

Příklad:

SELECT oddělení, COUNT(*) AS počet_zaměstnanců
FROM zaměstnanci
GROUP BY oddělení
HAVING COUNT(*) > 10;

Zde nelze použít WHERE k filtrování podle COUNT(*), protože je to agregační funkce, zatímco HAVING umožňuje vybrat pouze ta oddělení, kde je více než 10 zaměstnanců.