Partilhar 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 atender. 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 implícito de conjunto único será assumido.

Nota

HAVING só pode ser usado 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 é aplicada após a operação GROUP BY. Isso significa que a cláusula HAVING só pode fazer referências a aliases e agregados de agrupamento, como 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 apenas àqueles que incluem mais de um produto.

Exemplo

A consulta Entity SQL 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 esta consulta, siga estes passos:

  1. Siga o procedimento em Como: Executar uma consulta que retorna resultados PrimitiveType.

  2. Passe a seguinte consulta 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