QCM
Moyenne
9
L'ordre d'exécution par le moteur de base de données est différent pour ces deux clauses.
Lors de la rédaction d'une requête SQL complexe avec des fonctions d'agrégation (SUM, COUNT), il est vital de ne pas confondre le rôle de la clause WHERE avec celui de la clause HAVING. Quelle est la différence fondamentale entre ces deux clauses de filtrage ?
La clause WHERE filtre les lignes (enregistrements) AVANT que le regroupement (GROUP BY) ne soit effectué. La clause HAVING, en revanche, s'applique toujours après le GROUP BY, et sert à filtrer les sous-totaux APRÈS le calcul de l'agrégation (ex: ne garder que les groupes dont la SUM > 1000).