GROUPING (Transact-SQL)
適用対象: SQL Server Azure SQL データベース Azure SQL Managed Instance Azure Synapse Analytics Microsoft Fabric の SQL 分析エンドポイント Microsoft Fabric のウェアハウス
GROUP BY リスト内の指定した列の式が集計されるかどうかを示します。 GROUPING は結果セットで、集計される場合は 1 を、集計されない場合は 0 を返します。 GROUPING は、GROUP BY が指定されている場合に、 SELECT <select> リスト、HAVING 句、および ORDER BY 句でのみ使用できます。
構文
GROUPING ( <column_expression> )
引数
<column_expression>
GROUP BY 句の列が含まれた列または式です。
戻り値の型
tinyint
解説
GROUPING は、標準の null 値から、ROLLUP、CUBE、または GROUPING SETS によって返される null 値を区別するために使用します。 ROLLUP、CUBE、または GROUPING SETS の演算結果として返される NULL 値は、NULL の特別な用途です。 これは、結果セット内の列プレースホルダーとして機能し、すべてを意味します。
例
次の例では、AdventureWorks2022 データベースで SalesQuota
をグループ化して、SaleYTD
の金額を集計します。 GROUPING
関数は、SalesQuota
列に適用されます。
SELECT SalesQuota, SUM(SalesYTD) 'TotalSalesYTD', GROUPING(SalesQuota) AS 'Grouping'
FROM Sales.SalesPerson
GROUP BY SalesQuota WITH ROLLUP;
GO
結果セットは、SalesQuota
の下に 2 つの NULL 値を示します。 最初の NULL
値は、テーブル内のこの列からの NULL 値で構成されるグループを表します。 2 番目の NULL
値は、ROLLUP の演算によって追加された集計行にあります。 集計行は、すべての SalesQuota
グループについての TotalSalesYTD
の総量を表し、Grouping
列の 1
によって示されます。
結果セットは次のとおりです。
SalesQuota TotalSalesYTD Grouping
------------ ----------------- --------
NULL 1533087.5999 0
250000.00 33461260.59 0
300000.00 9299677.9445 0
NULL 44294026.1344 1
(4 row(s) affected)