SELECT - HAVING (Transact-SQL)

Si applica a:SQL Server database SQL di Azure Istanza gestita di SQL di Azure Azure Synapse Analytics AnalyticsPlatform System (PDW)SQL analytics endpoint in Microsoft FabricWarehouse in Microsoft Fabric

Specifica una condizione di ricerca per un gruppo o una funzione di aggregazione. Può essere specificata solo nell'istruzione SELECT. In genere HAVING viene inclusa in una clausola GROUP BY. Quando GROUP BY non viene usata, è presente un singolo gruppo aggregato implicito.

Convenzioni di sintassi Transact-SQL

Sintassi

[ HAVING <search condition> ]  

Nota

Per visualizzare la sintassi Transact-SQL per SQL Server 2014 (12.x) e versioni precedenti, vedere la documentazione delle versioni precedenti.

Argomenti

<search_condition> Specifica uno o più predicati che i gruppi e/o le aggregazioni devono soddisfare. Per altre informazioni sulle condizioni di ricerca e i predicati, vedere Condizioni di ricerca (Transact-SQL).

Non è possibile usare i tipi di dati text, image e ntext in una clausola HAVING.

Esempi

Nell'esempio seguente viene utilizzata una clausola HAVING semplice per recuperare il totale di ogni voce SalesOrderID maggiore di SalesOrderDetail dalla tabella $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 ;  

Esempi: Azure Synapse Analytics e Piattaforma di strumenti analitici (PDW)

Nell'esempio seguente viene usata una clausola HAVING per recuperare dalla tabella FactInternetSales il valore totale di SalesAmount che supera 80000 per ogni OrderDateKey.

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

Vedi anche

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