SELECT – HAVING (Transact-SQL)SELECT - HAVING (Transact-SQL)

APLICA-SE A: simSQL Server simBanco de Dados SQL do Azure simSQL Data Warehouse do Azure simParallel Data Warehouse APPLIES TO: yesSQL Server yesAzure SQL Database yesAzure SQL Data Warehouse yesParallel Data Warehouse

Especifica um critério de pesquisa para um grupo ou uma agregação.Specifies a search condition for a group or an aggregate. HAVING pode ser usado somente com a instrução SELECT.HAVING can be used only with the SELECT statement. HAVING é normalmente usado com uma cláusula GROUP BY.HAVING is typically used with a GROUP BY clause. Quando GROUP BY não for usado, haverá um único grupo agregado e implícito.When GROUP BY is not used, there is an implicit single, aggregated group.

Ícone de link do tópico Convenções de sintaxe de Transact-SQLTopic link icon Transact-SQL Syntax Conventions

SintaxeSyntax

[ HAVING <search condition> ]  

ArgumentosArguments

<search_condition> especifica um ou mais predicados aos quais os grupos e/ou as agregações devem corresponder.<search_condition> Specifies one or more predicates for groups and/or aggregates to meet. Para obter mais informações sobre critérios de pesquisa e predicados, consulte Critério de pesquisa (Transact-SQL).For more information about search conditions and predicates, see Search Condition (Transact-SQL).

Os tipos de dados text, image e ntext não podem ser usados em uma cláusula HAVING.The text, image, and ntext data types cannot be used in a HAVING clause.

ExemplosExamples

O exemplo a seguir que usa uma cláusula simples HAVING recupera o total para cada SalesOrderID da tabela SalesOrderDetail que excede $100000.00.The following example that uses a simple HAVING clause retrieves the total for each SalesOrderID from the SalesOrderDetail table that exceeds $100000.00.

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

Exemplos: Azure SQL Data WarehouseAzure SQL Data Warehouse e Parallel Data WarehouseParallel Data WarehouseExamples: Azure SQL Data WarehouseAzure SQL Data Warehouse and Parallel Data WarehouseParallel Data Warehouse

O exemplo a seguir usa uma cláusula HAVING para recuperar o total de cada SalesAmount da tabela FactInternetSales quando a OrderDateKey está no ano de 2004 ou em um ano posterior.The following example uses a HAVING clause to retrieve the total for each SalesAmount from the FactInternetSales table when the OrderDateKey is in the year 2004 or later.

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

Consulte TambémSee Also

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