データベース/MySQL、PostgreSQL、SQLite

Oracle10gでSQL - GROUP集計行オプション

GROUP BY句の集計行オプションについて解説します。

執筆者:堀江 美彦

Oracle10gでSQLを試す

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 GROUPING SETSにより総合計が表示されました。

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


GROUP BY ROLLUPにより月ごとの小計、総合計が表示されました。


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


GROUP BY CUBEにより月ごとの小計、商品ごとの小計、総合計が表示されました。


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

Oracle10g関連記事一覧

【編集部おすすめの購入サイト】
Amazonでデータベース関連の書籍をチェック!楽天市場でデータベース関連の書籍をチェック!
※記事内容は執筆時点のものです。最新の内容をご確認ください。
※OSやアプリ、ソフトのバージョンによっては画面表示、操作方法が異なる可能性があります。

あわせて読みたい

あなたにオススメ

    表示について

    カテゴリー一覧

    All Aboutサービス・メディア

    All About公式SNS
    日々の生活や仕事を楽しむための情報を毎日お届けします。
    公式SNS一覧
    © All About, Inc. All rights reserved. 掲載の記事・写真・イラストなど、すべてのコンテンツの無断複写・転載・公衆送信等を禁じます