Condividi tramite


SELECT - HAVING (Transact-SQL)

Si applica a:SQL ServerDatabase SQL di AzureIstanza gestita di SQL di AzureAzure Synapse AnalyticsSistema di Piattaforma di Analisi (PDW)Endpoint di analisi SQL in Microsoft FabricWarehouse in Microsoft FabricAnteprima di Database SQL 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

Syntax

[ HAVING <search condition> ]  

Arguments

<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.

Examples

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 SalesAmount il valore totale di 80000 che supera OrderDateKey per ogni FactInternetSales.

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

See Also

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