HAVING
funguje na souhrnném řádku - WHERE
pracuje na celé tabulce před GROUP BY
je použito. (Nemůžete vložit GROUP BY
stranou, HAVING
je klauzule vyhrazená pro použití s GROUP BY
- vynechání GROUP BY
nemění implicitní akci, která se odehrává v zákulisí).
Je také důležité poznamenat, že z tohoto důvodu WHERE
můžete použít index při HAVING
nemůže. (V super triviálních neseskupených sadách výsledků byste teoreticky mohli použít index pro HAVING
, ale nikdy jsem neviděl optimalizátor dotazů skutečně implementovaný tímto způsobem).