次の方法で共有


GROUPING (Transact-SQL)

追加された列を出力する集計関数です。CUBE または ROLLUP 演算子によって行を追加するときは値 1、行が CUBE と ROLLUP のどちらの結果でもないときは値 0 がそれぞれ使用されます。

GROUP BY 句と関連付けられていて、CUBE または ROLLUP 演算子が含まれている選択リストでのみ、グループ化が可能です。

トピック リンク アイコンTransact-SQL 構文表記規則

構文

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 日

変更内容 :
  • OVER 句を削除しました。

参照

関連項目

集計関数 (Transact-SQL)
SELECT (Transact-SQL)

ヘルプおよび情報

SQL Server 2005 の参考資料の入手