Compartilhar via


HAVING (Entity SQL)

Especifica uma condição de pesquisa para um grupo ou uma agregação.

Sintaxe

[ HAVING search_condition ]  

Argumentos

search_condition
Especifica a condição de pesquisa para o grupo ou a agregação a ser atendendo. Quando HAVING é usado com GROUP BY ALL, a cláusula HAVING substitui ALL.

Observações

A cláusula HAVING é usada para especificar uma condição de filtragem adicional no resultado de um agrupamento. Se nenhuma cláusula GROUP BY for especificada na expressão de consulta, um grupo de conjunto único implícito será assumido.

Observação

HAVING pode ser usado somente com a instrução SELECT . Quando GROUP BY não é usado, HAVING se comporta como uma cláusula WHERE.

A cláusula HAVING funciona como a cláusula WHERE, exceto que ela é aplicada após a operação GROUP BY. Isso significa que a cláusula HAVING só pode fazer referências ao agrupamento de aliases e agregações, conforme ilustrado no exemplo a seguir:

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

O anterior restringe os grupos somente àqueles que incluem mais de um produto.

Exemplo

A consulta SQL de entidade a seguir usa os operadores HAVING e GROUP BY para especificar uma condição de pesquisa para um grupo ou uma agregação. A consulta é baseada no Modelo de Vendas adventureworks. Para compilar e executar essa consulta, siga estas etapas:

  1. Siga o procedimento em How to: Execute a Query that Returns PrimitiveType Results.

  2. Passe a consulta a seguir como um argumento para o ExecutePrimitiveTypeQuery método:

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

Consulte também