HAVING (Entity SQL)
Indique un critère de recherche pour un groupe ou une fonction d'agrégation.
Syntaxe
[ HAVING search_condition ]
Arguments
search_condition
Indique les critères de recherche à réunir pour le groupe ou l'agrégat. Lorsque HAVING est utilisé avec GROUP BY ALL, la clause HAVING remplace ALL.
Notes
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 constitué d'un seul ensemble est supposé exister.
Notes
La clause HAVING ne peut être utilisée qu’avec l’instruction SELECT. À défaut d’utilisation de GROUP BY, la clause HAVING se comporte comme une clause WHERE.
La clause HAVING fonctionne comme la clause WHERE, à la différence près que son application intervient après l'opération GROUP BY. Cela signifie que la clause HAVING ne peut faire référence qu’à des agrégats et des alias de regroupement, comme l’illustre 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 clause précédente limite les groupes à ceux qui comportent plusieurs produits.
Exemple
La requête Entity SQL ci-dessous utilise les opérateurs HAVING et GROUP BY pour spécifier un critère de recherche pour un groupe ou un agrégat. Cette requête est basée sur le modèle de vente AdventureWorks Sales Model. Pour compiler et exécuter cette requête, procédez comme suit :
Suivez la procédure indiquée dans Comment : Exécuter une requête qui retourne des résultats PrimitiveType.
Transmettez à la méthode
ExecutePrimitiveTypeQuery
la requête suivante en tant qu'argument :
SELECT VALUE name FROM AdventureWorksEntities.Products
AS P GROUP BY P.Name HAVING MAX(P.ListPrice) > @price