HAVING
fonctionne sur la ligne résumée - WHERE
opère sur toute la table avant le GROUP BY
est appliqué. (Vous ne pouvez pas mettre GROUP BY
de côté, HAVING
est une clause réservée à une utilisation avec GROUP BY
- en omettant le GROUP BY
ne change pas l'action implicite qui se produit dans les coulisses).
Il est également important de noter qu'à cause de cela, WHERE
peut utiliser un index alors que HAVING
ne peux pas. (Dans les ensembles de résultats non groupés super triviaux, vous pouvez théoriquement utiliser un index pour HAVING
, mais je n'ai jamais vu un optimiseur de requête réellement implémenté de cette manière).