GROUPING SETS の対応
GROUP BY 句で GROUPING SETS を使用すると、複数の単純な GROUP BY 句の UNION ALL によって生成されるものと同じ結果セットを生成できます。GROUPING SETS は、単純な GROUP BY、ROLLUP、または CUBE 演算によって生成されるものと同じ結果を生成できます。GROUPING SETS、ROLLUP、または CUBE のさまざまな組み合わせによって、同等の結果セットを生成できます。
このトピックでは、GROUPING SETS に相当する例を示します。例では次の省略形が使用されています。
Agg(): すべての集計関数
(arg): 引数
UNION ALL に相当する GROUPING SETS
GROUPING SETS (<グループ セット> [,...n ]) を GROUP BY 一覧として指定すると、グループ セットのそれぞれが GROUP BY 一覧であるクエリの UNION ALL と同じ結果が得られます。浮動小数点数を集計すると、若干異なる結果が返される場合があります。
次のステートメントは同等です。
|
|
単純な GROUP BY に相当する GROUPING SETS
次の句は同じ総計を返します。
|
|
次の句は同じ 1 つのセットを返します。
|
|
GROUPING SETS ROLLUP の対応
入力一覧に n ディメンションを含む GROUP BY ROLLUP (<複合要素一覧>) は、入力一覧の各プレフィックス (n+1) が GROUPING SETS である GROUPING SETS と同等です。
次の句は同等です。
|
|
GROUPING SETS CUBE の対応
入力一覧に n ディメンションを含む GROUP BY CUBE (<複合要素一覧>) は、入力一覧のフル セット (入力一覧内のディメンションの 2n の組み合わせ) が GROUPING SETS である GROUPING SETS と同等です。
次の句は同等です。
|
|
次の句は同等です。
|
|
ROLLUP 内にグループ セットを含む ROLLUP の複合列
次の句は同等です。
|
|
|
CUBE 内にグループ セットを含む CUBE の複合列
次の句は同等です。
|
|
|
GROUPING SETS、ROLLUP、または CUBE を含む GROUP BY
次の句は同等です。
|
|
次の句は同等です。
|
|
次の句は同等です。
|
|
GROUPING SETS 一覧に含まれている ROLLUP
次の句は同等です。
|
|
グループ セット内に含まれている ROLLUP
次の句は同等です。
|
|