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;