SQLのCUBE, ROLLUPとGROUP BYの使い方

この記事では、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万円
テーブル1: GROUP BYによる売上集計

CUBEとは

基本構文

CUBEはGROUP BYの拡張であり、複数列での集計結果を一度のクエリで取得できます。

SELECT 列1, 列2, ... , 集計関数(列)
FROM テーブル
GROUP BY CUBE (列1, 列2, ...);

具体例

商品テーブルから、商品カテゴリと地域ごとに売上を集計する例です。

SELECT カテゴリ, 地域, SUM(売上)
FROM 商品
GROUP BY CUBE (カテゴリ, 地域);
カテゴリ地域売上
家電東京700万円
食品大阪200万円
テーブル2: CUBEによる売上集計

ROLLUPとは

基本構文

ROLLUPもGROUP BYの拡張であり、階層的な集計が可能です。

SELECT 列1, 列2, ... , 集計関数(列)
FROM テーブル
GROUP BY ROLLUP (列1, 列2, ...);

具体例

商品テーブルから、商品カテゴリごと、さらにその下で地域ごとに売上を集計する例です。

SELECT カテゴリ, 地域, SUM(売上)
FROM 商品
GROUP BY ROLLUP (カテゴリ, 地域);
カテゴリ地域売上
家電東京700万円
家電合計1000万円
テーブル3: ROLLUPによる売上集計

まとめ

GROUP BY、CUBE、ROLLUPはSQLの強力な集計機能です。特にCUBEとROLLUPは複数の列に対する集計を効率よく行えるため、データ分析作業を大いに助けてくれます。これらの使い方と特性をしっかりと理解することで、SQLのスキルを更に高めることができるでしょう。

コメント

コメントする

目次