Cláusula HAVING (SQL Server Compact)

Especifica um critério de pesquisa para um grupo ou um agregado. A cláusula HAVING geralmente é usada com a cláusula GROUP BY.

Sintaxe

[ HAVING < search_condition > ] 

Argumentos

  • < search_condition >
    Especifica o critério de pesquisa a ser atendido pelo grupo. Esse critério pode usar expressões agregadas e não agregadas. As únicas colunas que podem ser usadas nas expressões não agregadas são aquelas especificadas como colunas de agrupamento na cláusula GROUP BY. Isso ocorre porque as colunas agrupar por representam propriedades comuns do grupo inteiro. Da mesma forma, as expressões agregadas representam uma propriedade comum do grupo inteiro. O critério de pesquisa da cláusula HAVING está expressando um predicado nas propriedades do grupo.

    Os tipos de dados image e ntext não podem ser usados em uma cláusula HAVING.

Comentários

As consultas a seguir são permitidas no SQL Server, mas não no SQL Server Compact, e geram a seguinte mensagem de erro: "Em expressões agregadas e de agrupamento, a cláusula HAVING pode conter apenas funções de agregação e expressões de agrupamento".

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;

No entanto, essas consultas serão permitidas no SQL Server Compact se uma variável de coluna simples for usada em vez de uma expressão, como (c1+c2).

Exemplo

O exemplo a seguir retorna uma lista de todos os produtos com Total Count > 50.

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