Partager via


SELECT - HAVING (Transact-SQL)

S’applique à : SQL Server Base de données Azure SQL Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW) Point de terminaison d'analyse SQL dans Microsoft Fabric Entrepôt dans Microsoft Fabric Base de données SQL dans Microsoft Fabric

Indique un critère de recherche pour un groupe ou une fonction d'agrégation. HAVING ne peut être utilisé qu'avec l'instruction SELECT. HAVING est généralement utilisé avec une clause GROUP BY. Sans la clause GROUP BY, un seul groupe agrégé est implicitement utilisé.

Conventions de la syntaxe Transact-SQL

Syntaxe

[ HAVING <search condition> ]  

Arguments

<search_condition> spécifie un ou plusieurs prédicats devant être remplis pour les groupes et/ou agrégats. Pour plus d’informations sur les prédicats et conditions de recherche, consultez Condition de recherche (Transact-SQL).

Les types de données text, image et ntext ne peuvent pas être utilisés avec une clause HAVING.

Exemples

L'exemple suivant utilise une clause HAVING simple, extrait le total de chaque SalesOrderID depuis la table SalesOrderDetail qui dépasse les $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 ;  

Exemples : Azure Synapse Analytics et Analytics Platform System (PDW)

L’exemple suivant utilise une clause HAVING pour récupérer le SalesAmount total qui dépasse 80000 pour chaque OrderDateKey de la table FactInternetSales.

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

Voir aussi

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