Partager via


HAVING (Entity SQL)

Spécifie une condition de recherche pour un groupe ou un agrégat.

Syntaxe

[ HAVING search_condition ]  

Les arguments

search_condition
Spécifie la condition de recherche pour le groupe ou l’agrégat à respecter. Lorsque HAVING est utilisé avec GROUP BY ALL, la clause HAVING remplace ALL.

Remarques

La clause HAVING est utilisée pour spécifier une condition de filtrage supplémentaire sur le résultat d’un regroupement. Si aucune clause GROUP BY n’est spécifiée dans l’expression de requête, un groupe implicite à ensemble unique est supposé.

Remarque

HAVING ne peut être utilisé qu’avec l’instruction SELECT . Quand GROUP BY n’est pas utilisé, HAVING se comporte comme une clause WHERE.

La clause HAVING fonctionne comme la clause WHERE, sauf qu’elle est appliquée après l’opération GROUP BY. Cela signifie que la clause HAVING ne peut faire référence qu’aux alias de regroupement et aux agrégats, comme illustré dans l’exemple suivant :

SELECT Name, SUM(o.Price * o.Quantity) AS Total FROM orderLines AS o GROUP BY o.Product AS Name  
HAVING SUM(o.Quantity) > 1  

La précédente limite les groupes à ceux qui incluent plusieurs produits.

Exemple :

La requête Entity SQL suivante utilise les opérateurs HAVING et GROUP BY pour spécifier une condition de recherche pour un groupe ou un agrégat. La requête est basée sur adventureWorks Sales Model. Pour compiler et exécuter cette requête, procédez comme suit :

  1. Suivez la procédure dans How to : Execute a Query that Returns PrimitiveType Results.

  2. Transmettez la requête suivante en tant qu’argument à la ExecutePrimitiveTypeQuery méthode :

SELECT VALUE name FROM AdventureWorksEntities.Products 
    AS P GROUP BY P.Name HAVING MAX(P.ListPrice) > @price

Voir aussi