Comment : spécifier des conditions pour des groupes
Mise à jour : novembre 2007
Vous pouvez limiter les groupes qui apparaissent dans une requête en spécifiant une condition qui s'applique à l'ensemble des groupes, une clause HAVING. Après regroupement et agrégation des données, les conditions de la clause HAVING sont appliquées. Seuls les groupes qui répondent aux conditions apparaissent dans la requête.
Supposons que vous vouliez voir le prix moyen de tous les livres pour chaque éditeur dans une table titles, mais uniquement dans le cas où ce prix serait supérieur à 10 $. Dans ce cas, vous pouvez spécifier une clause HAVING avec une condition telle que AVG(price) > 10.
Remarque : |
---|
Il peut arriver parfois que vous souhaitiez exclure des lignes individuelles de groupes avant d'appliquer une condition aux groupes dans leur ensemble. Pour plus d'informations, consultez Comment : utiliser les clauses HAVING et WHERE dans la même requête. |
Vous pouvez créer des conditions complexes pour une clause HAVING en utilisant AND et OR pour lier les conditions. Pour plus d'informations sur l'utilisation de AND et OU dans les conditions de recherche, consultez Comment : spécifier plusieurs conditions de recherche pour une colonne.
Remarque : |
---|
Les boîtes de dialogue et commandes de menu qui s'affichent peuvent différer de celles décrites dans l'aide selon vos paramètres actifs ou votre édition. Pour modifier vos paramètres, choisissez Importation et exportation de paramètres dans le menu Outils. Pour plus d'informations, consultez Paramètres Visual Studio. |
Pour spécifier une condition destinée à un groupe
Spécifiez les groupes de votre requête. Pour plus d'informations, consultez Comment : regrouper des lignes dans les résultats d'une requête.
Si elle ne figure pas encore dans le volet Critères, ajoutez la colonne sur laquelle vous souhaitez baser la condition. (Souvent, la condition concerne une colonne qui est déjà une colonne de groupe ou de synthèse.) Vous ne pouvez pas utiliser une colonne qui ne fait pas partie d'une fonction d'agrégation ou de la clause GROUP BY.
Dans la colonne Filtre, spécifiez la condition à appliquer au groupe.
Le Concepteur de requêtes et de vues crée automatiquement une clause HAVING dans l'instruction du volet SQL, comme illustré dans l'exemple suivant :
SELECT pub_id, AVG(price) FROM titles GROUP BY pub_id HAVING (AVG(price) > 10)
Répétez les étapes 2 et 3 pour chaque condition supplémentaire que vous souhaitez spécifier.
Voir aussi
Tâches
Comment : utiliser les clauses HAVING et WHERE dans la même requête