Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
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 :
Suivez la procédure dans How to : Execute a Query that Returns PrimitiveType Results.
Transmettez la requête suivante en tant qu’argument à la
ExecutePrimitiveTypeQueryméthode :
SELECT VALUE name FROM AdventureWorksEntities.Products
AS P GROUP BY P.Name HAVING MAX(P.ListPrice) > @price