この記事では、SQLのCUBE, ROLLUP, およびGROUP BYの使い方について詳しく解説します。これらの機能はデータベース内のデータを集計する際に非常に便利です。具体的なSQL文と実際の出力結果を交えながら、初心者から中級者までわかりやすく説明します。
目次
はじめに
SQLにはデータを集計するための多くの機能が存在しますが、その中でもCUBE, ROLLUP, GROUP BYは特によく用いられます。これらの違いと使い方を理解することで、データ分析の幅が広がります。
GROUP BYの基本
基本構文
GROUP BYは最も基本的な集計機能です。基本構文は以下の通りです。
SELECT 列1, 列2, ... , 集計関数(列)
FROM テーブル
GROUP BY 列1, 列2, ... ;
具体例
以下は、商品テーブルから商品カテゴリごとに売上を集計する例です。
SELECT カテゴリ, SUM(売上)
FROM 商品
GROUP BY カテゴリ;
カテゴリ | 売上 |
---|---|
家電 | 1000万円 |
食品 | 500万円 |
CUBEとは
基本構文
CUBEはGROUP BYの拡張であり、複数列での集計結果を一度のクエリで取得できます。
SELECT 列1, 列2, ... , 集計関数(列)
FROM テーブル
GROUP BY CUBE (列1, 列2, ...);
具体例
商品テーブルから、商品カテゴリと地域ごとに売上を集計する例です。
SELECT カテゴリ, 地域, SUM(売上)
FROM 商品
GROUP BY CUBE (カテゴリ, 地域);
カテゴリ | 地域 | 売上 |
---|---|---|
家電 | 東京 | 700万円 |
食品 | 大阪 | 200万円 |
ROLLUPとは
基本構文
ROLLUPもGROUP BYの拡張であり、階層的な集計が可能です。
SELECT 列1, 列2, ... , 集計関数(列)
FROM テーブル
GROUP BY ROLLUP (列1, 列2, ...);
具体例
商品テーブルから、商品カテゴリごと、さらにその下で地域ごとに売上を集計する例です。
SELECT カテゴリ, 地域, SUM(売上)
FROM 商品
GROUP BY ROLLUP (カテゴリ, 地域);
カテゴリ | 地域 | 売上 |
---|---|---|
家電 | 東京 | 700万円 |
家電 | 合計 | 1000万円 |
まとめ
GROUP BY、CUBE、ROLLUPはSQLの強力な集計機能です。特にCUBEとROLLUPは複数の列に対する集計を効率よく行えるため、データ分析作業を大いに助けてくれます。これらの使い方と特性をしっかりと理解することで、SQLのスキルを更に高めることができるでしょう。
created by Rinker
¥4,554
(2024/11/22 10:55:01時点 Amazon調べ-詳細)
コメント