SELECT - HAVING (Transact-SQL)

適用対象:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)Microsoft Fabric の SQL 分析エンドポイントMicrosoft Fabric のウェアハウス

グループまたは集計の検索条件を指定します。 HAVING は、SELECT ステートメントと共にのみ使用できます。 通常、HAVING は GROUP BY 句と共に使用されます。 GROUP BY を使用しない場合は、暗黙的な 1 つの集計グループがあります。

Transact-SQL 構文表記規則

構文

[ HAVING <search condition> ]  

Note

SQL Server 2014 (12.x) 以前のバージョンの Transact-SQL 構文を確認するには、以前のバージョンのドキュメントを参照してください。

引数

<search_condition> は、条件を満たすグループと集計のいずれか、または両方に対して、1 つ以上の述語を指定します。 検索条件および述語の詳細については、「検索条件 (Transact-SQL)」を参照してください。

textimage、および ntext 型は HAVING 句では使用できません。

次の例では、HAVING テーブルから SalesOrderID を超える SalesOrderDetail ごとの合計を取得する単純な $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 ;  

例: Azure Synapse Analytics、Analytics Platform System (PDW)

次の例では、HAVING 句を使用して、FactInternetSales テーブルから各 OrderDateKey80000 を超える合計 SalesAmount を取得します。

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

参照

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