GROUPING (Transact-SQL)
追加された列を出力する集計関数です。CUBE または ROLLUP 演算子によって行を追加するときは値 1、行が CUBE と ROLLUP のどちらの結果でもないときは値 0 がそれぞれ使用されます。
GROUP BY 句と関連付けられていて、CUBE または ROLLUP 演算子が含まれている選択リストでのみ、グループ化が可能です。
構文
GROUPING ( column_name )
引数
- column_name
CUBE または ROLLUP の NULL 値の有無を調べる対象の、GROUP BY 句に含まれる列を指定します。
戻り値の型
tinyint
解説
グループ化を使用して、CUBE および ROLLUP から返される NULL 値と標準的な NULL 値を区別します。CUBE または ROLLUP の演算結果として返される NULL 値は、NULL の特別な用途です。結果セット内の列のプレースホルダとして動作し、すべてという意味を持ちます。
例
次の例では、SalesQuota
をグループ化して SaleYTD
額を集計します。GROUPING
関数は、SalesQuota
列に適用されます。
USE AdventureWorks;
GO
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)
変更履歴
リリース | 履歴 |
---|---|
2006 年 12 月 12 日 |
|
参照
関連項目
集計関数 (Transact-SQL)
SELECT (Transact-SQL)