Condividi tramite


SELECT - HAVING (Transact-SQL)

Si applica a: SQL Server database SQL di Azure Istanza gestita di SQL di Azure endpoint di analisi SQL di Azure Synapse Analytics Platform System (PDW) in Microsoft Fabric Warehouse nel database SQL di Microsoft Fabric in Microsoft Fabric

Specifica una condizione di ricerca per un gruppo o una funzione di aggregazione. La clausola HAVING può essere usata solo con l'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 relative alla sintassi Transact-SQL

Sintassi

[ HAVING <search condition> ]  

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)