目次
基本的な集約関数について
SQLには、COUNT(), SUM(), AVG(), MIN(), MAX()など、基本的な集約関数がいくつかあります。これらの関数は、GROUP BY句と共に使うことで、特定のカラムに基づいた集約が可能です。ROLLUPによる階層的な集約
ROLLUPは、GROUP BY句と共に用いられ、指定したカラムの組み合わせに対する集約結果とサブトータルを一度のクエリで取得できます。基本的なROLLUPの使い方
例えば、都道府県と市区町村ごとの売上データがあるとき、ROLLUPを使うと以下のように集約できます。SELECT 都道府県, 市区町村, SUM(売上)
FROM 売上データ
GROUP BY ROLLUP (都道府県, 市区町村);
出力結果
都道府県 | 市区町村 | 合計売上 |
---|---|---|
東京 | 渋谷 | 2000 |
東京 | 新宿 | 3000 |
東京 | null | 5000 |
null | null | 5000 |
CUBEによる多次元的な集約
CUBEは、ROLLUPの拡張版と考えることができます。すべての組み合わせに対する集約結果を取得するために使用されます。基本的なCUBEの使い方
基本的なCUBEの使用方法は以下の通りです。SELECT 都道府県, 市区町村, SUM(売上)
FROM 売上データ
GROUP BY CUBE (都道府県, 市区町村);
出力結果
都道府県 | 市区町村 | 合計売上 |
---|---|---|
東京 | 渋谷 | 2000 |
東京 | 新宿 | 3000 |
東京 | null | 5000 |
null | 渋谷 | 2000 |
null | 新宿 | 3000 |
null | null | 5000 |
GROUPING SETSで複雑な集約
GROUPING SETSは、ROLLUPやCUBEとは異なり、特定の集約結果だけを取得することができます。基本的なGROUPING SETSの使い方
GROUPING SETSの使用方法は以下の通りです。SELECT 都道府県, 市区町村, SUM(売上)
FROM 売上データ
GROUP BY GROUPING SETS ((都道府県, 市区町村), (都道府県), ());
出力結果
都道府県 | 市区町村 | 合計売上 |
---|---|---|
東京 | 渋谷 | 2000 |
東京 | 新宿 | 3000 |
東京 | null | 5000 |
null | null | 5000 |
まとめ
h2>
この記事では、SQLの高度な集約オプションであるROLLUP, CUBE, およびGROUPING SETSについて詳しく解説しました。これらの技術を駆使することで、データ分析がより効率的に、かつ多角的に行えます。特に大量のデータを扱う場合や複数の角度からデータを考察したい場合には、これらの機能は非常に役立ちます。
created by Rinker
¥4,554
(2024/11/22 10:55:01時点 Amazon調べ-詳細)
created by Rinker
¥4,554
(2024/11/22 10:55:01時点 Amazon調べ-詳細)
コメント