SELECT: HAVING (Transact-SQL)

Se aplica a:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)Punto de conexión de análisis SQL en Microsoft FabricAlmacenamiento en Microsoft Fabric

Especifica una condición de búsqueda para un grupo o agregado. HAVING solo se puede utilizar con la instrucción SELECT. Normalmente, HAVING se usa con una cláusula GROUP BY. Cuando no se usa GROUP BY, hay un solo grupo implícito agregado.

Convenciones de sintaxis de Transact-SQL

Sintaxis

[ HAVING <search condition> ]  

Nota:

Para ver la sintaxis de Transact-SQL para SQL Server 2014 (12.x) y versiones anteriores, consulte Versiones anteriores de la documentación.

Argumentos

<search_condition>: especifica uno o más predicados que los grupos o agregados deben satisfacer. Para obtener más información sobre los predicados y las condiciones de búsqueda, consulte Condiciones de búsqueda (Transact-SQL).

Los tipos de datos text, image y ntext no se pueden usar en una cláusula HAVING.

Ejemplos

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.

USE AdventureWorks2022;  
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 y Sistema de la plataforma de análisis (PDW)

En el ejemplo siguiente se usa una cláusula HAVING para recuperar el total de cada SalesAmount que supera 80000 por cada OrderDateKey de la tabla FactInternetSales.

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

Consulte también

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