Share via


Procédure : spécifier des conditions pour des groupes (Visual Database Tools)

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.

Notes

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 Procédure : utiliser les clauses HAVING et WHERE dans la même requête (Visual Database Tools).

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 Procédure : spécifier plusieurs conditions de recherche pour une colonne (Visual Database Tools).

Pour spécifier une condition destinée à un groupe

  1. Spécifiez les groupes de votre requête. Pour plus d'informations, consultez Procédure : regrouper des lignes dans les résultats d'une requête (Visual Database Tools).

  2. 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.

  3. 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)
    
  4. Répétez les étapes 2 et 3 pour chaque condition supplémentaire que vous souhaitez spécifier.