SELECT – HAVING (Transact-SQL)

Aplica-se a:SQL ServerBanco de Dados SQL do AzureInstância Gerenciada de SQL do AzureAzure Synapse AnalyticsPDW (Analytics Platform System)Ponto de extremidade de SQL no Microsoft FabricWarehouse no Microsoft Fabric

Especifica um critério de pesquisa para um grupo ou uma agregação. HAVING pode ser usado somente com a instrução SELECT. HAVING é normalmente usado com uma cláusula GROUP BY. Quando GROUP BY não for usado, haverá um único grupo agregado e implícito.

Convenções de sintaxe de Transact-SQL

Sintaxe

[ HAVING <search condition> ]  

Observação

Para exibir a sintaxe do Transact-SQL para o SQL Server 2014 (12.x) e versões anteriores, confira a Documentação das versões anteriores.

Argumentos

<search_condition> especifica um ou mais predicados aos quais os grupos e/ou as agregações devem corresponder. Para obter mais informações sobre critérios de pesquisa e predicados, confira Critério de pesquisa (Transact-SQL).

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

Exemplos

O exemplo a seguir que usa uma cláusula simples HAVING recupera o total para cada SalesOrderID da tabela SalesOrderDetail que excede $100000.00.

USE AdventureWorks2022;  
GO  
SELECT SalesOrderID, SUM(LineTotal) AS SubTotal  
FROM Sales.SalesOrderDetail  
GROUP BY SalesOrderID  
HAVING SUM(LineTotal) > 100000.00  
ORDER BY SalesOrderID ;  

Exemplos: Azure Synapse Analytics e PDW (Analytics Platform System)

O exemplo a seguir usa uma cláusula HAVING para recuperar a SalesAmount total que excede 80000 para cada OrderDateKey da tabela FactInternetSales.

-- Uses AdventureWorks  
  
SELECT OrderDateKey, SUM(SalesAmount) AS TotalSales   
FROM FactInternetSales  
GROUP BY OrderDateKey   
HAVING SUM(SalesAmount) > 80000  
ORDER BY OrderDateKey;  

Consulte Também

GROUP BY (Transact-SQL)
WHERE (Transact-SQL)