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;