SELECT: HAVING (Transact-SQL)SELECT - HAVING (Transact-SQL)

SE APLICA A: síSQL Server síAzure SQL Database síAzure Synapse Analytics (SQL DW) síAlmacenamiento de datos paralelos APPLIES TO: yesSQL Server yesAzure SQL Database yesAzure Synapse Analytics (SQL DW) yesParallel Data Warehouse

Especifica una condición de búsqueda para un grupo o agregado.Specifies a search condition for a group or an aggregate. HAVING solo se puede utilizar con la instrucción SELECT.HAVING can be used only with the SELECT statement. Normalmente, HAVING se usa con una cláusula GROUP BY.HAVING is typically used with a GROUP BY clause. Cuando no se usa GROUP BY, hay un solo grupo implícito agregado.When GROUP BY is not used, there is an implicit single, aggregated group.

Icono de vínculo de tema Convenciones de sintaxis de Transact-SQLTopic link icon Transact-SQL Syntax Conventions

SintaxisSyntax

[ HAVING <search condition> ]  

ArgumentosArguments

En <condición_de_búsqueda> se especifican uno o más predicados que los grupos o agregados deben satisfacer.<search_condition> Specifies one or more predicates for groups and/or aggregates to meet. Para más información sobre los predicados y las condiciones de búsqueda, vea Condición de búsqueda (Transact-SQL).For more information about search conditions and predicates, see Search Condition (Transact-SQL).

Los tipos de datos text, image y ntext no se pueden usar en una cláusula HAVING.The text, image, and ntext data types cannot be used in a HAVING clause.

EjemplosExamples

En el ejemplo siguiente, donde se utiliza una cláusula HAVING simple, se recupera el total de cada SalesOrderID de la tabla SalesOrderDetail que exceda $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 ;  

Ejemplos: Azure Synapse Analytics (SQL DW)Azure Synapse Analytics (SQL DW) y Almacenamiento de datos paralelosParallel Data WarehouseExamples: Azure Synapse Analytics (SQL DW)Azure Synapse Analytics (SQL DW) and Almacenamiento de datos paralelosParallel Data Warehouse

En el ejemplo siguiente se usa una cláusula HAVING para recuperar el total de cada SalesAmount de la tabla FactInternetSales cuando la OrderDateKey está en el año 2004 o 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 tambiénSee Also

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