Partager via


HAVING, clause (SQL Server Compact)

Spécifie une condition de recherche pour un groupe ou pour une agrégation. La clause HAVING est généralement utilisée avec la clause GROUP BY.

Syntaxe

[ HAVING < search_condition > ] 

Arguments

  • < search_condition >
    Spécifie la condition de recherche que le groupe doit respecter. La condition de recherche peut utiliser des expressions d'agrégation et de non-agrégation. Les seules colonnes utilisables dans les expressions de non-agrégation sont celles spécifiées en tant que colonnes de regroupement dans la clause GROUP BY. En effet, les colonnes de regroupement (GROUP BY) représentent des propriétés communes à la totalité du groupe. De même, les expressions d'agrégation représentent une propriété commune à l'ensemble du groupe. La condition de recherche de la clause HAVING exprime un prédicat sur les propriétés du groupe.

    Vous ne pouvez pas utiliser les types de données image et ntext dans une clause HAVING.

Notes

Les requêtes suivantes sont autorisées dans SQL Server mais pas dans SQL Server Compact et peuvent provoquer l'affichage du message d'erreur suivant : "Dans les expressions d'agrégation et de regroupement, la clause HAVING ne peut contenir que des expressions d'agrégation et de regroupement."

select count(*), c1+c2 from s1 group by c1+c2 having c1+c2 <10; 
select count(*), x from (select *, col1 + col2 as x from oj1) d group by x having x <4;

Toutefois, ces requêtes sont autorisées dans SQL Server Compact si une variable de colonne simple est utilisée au lieu d'une expression, par exemple (c1+c2).

Exemple

Cet exemple renvoie une liste de tous les produits avec un nombre total > 50.

SELECT [Product ID], COUNT(*) AS Total FROM [Order Details] GROUP BY [Product ID] HAVING (COUNT(*) > 50)