Sobes.tech
Middle

Standardní otázka ohledně SQL: v čem se liší WHERE a HAVING?

sobes.tech AI

Odpověď od AI

Hlavní rozdíl mezi WHERE a HAVING v SQL spočívá v tom, v jaké fázi filtrují data:

  • WHERE filtruje řádky před seskupením. Používá se k omezení původního datového souboru.
  • HAVING filtruje skupiny po použití agregačních funkcí a seskupení (GROUP BY).

Příklad:

SELECT oddělení, COUNT(*) jako počet_zaměstnanců
FROM zaměstnanci
WHERE plat > 50000  -- filtrujeme zaměstnance s platem > 50000
GROUP BY oddělení
HAVING COUNT(*) > 10      -- vybírá oddělení s více než 10 zaměstnanci

Zde WHERE omezuje počáteční řádky, a HAVING konečné skupiny.