1.6 GROUPING SETS、GROUPING ROLLUP、GROUP BY CUBE句 --- 集計行オプション
GROUP BY GROUPING SETS 、GROUP BY ROLLUP 、GROUP BY CUBEはGROUP BY句に指定できるオプションです。
指定されたオプションに従い集計行が追加されます。
SUM、AVG、MAX、MINなどの集計関数をGROUP BY GROUPING SETS 、GROUP BY ROLLUP 、GROUP BY CUBEと組み合わせて使用することができます。
基本文法
GROUP BY GROUPING SETS (<列名1>[,<列名2>]…)
GROUP BY GROUPING ROLLUP (<列名1>[,<列名2>]…)
GROUP BY CUBE (<列名1>[,<列名2>]…)
例) GROUP BY GROUPING SETSにより総合計を求めます。
表名 : 売上
列名 : 月,商品名
SQL : SELECT 月,商品名,SUM(売上数) FROM 売上 GROUP BY GROUPING SETS((月,商品名),()) ORDER BY 月,商品名;


例) GROUP BY ROLLUPにより月ごとの小計、総合計を求めます。
表名 : 売上
列名 : 月,商品名
SQL : SELECT 月,商品名,SUM(売上数) FROM 売上 GROUP BY ROLLUP(月,商品名) ORDER BY 月,商品名;

例) GROUP BY CUBEにより月ごとの小計、商品ごとの小計、総合計を求めます。
表名 : 売上
列名 : 月,商品名
SQL : SELECT 月,商品名,SUM(売上数) FROM 売上 GROUP BY CUBE(月,商品名) ORDER BY 月,商品名;

Oracle10gでSQLを試す関連記事一覧
Oracle10g関連記事一覧