Compartir a través de


SELECT: HAVING (Transact-SQL)

Se aplica a: SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW) Punto de conexión de análisis SQL en Microsoft Fabric Warehouse en Microsoft Fabric Base de datos SQL de 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> ]  

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)