はじめに
SQLにおけるGROUP BY
句は、集計処理や統計的な分析を行う上で欠かせない機能です。
特に、売上や件数などの合計・平均をカテゴリ別に集計したい場合などに活躍します。
本記事では、GROUP BY句の基本的な使い方とポイントを備忘録としてまとめます。
書こうと思ったきっかけ
業務でSQLの集計処理を繰り返す中で、GROUP BY句の使い方や挙動を毎回調べる場面が多かったため、効率よく思い出せるように整理しておきたいと思いました。
個人の備忘録程度の走り書きとなっておりますが、温かい目で見守っていただければ幸いです。
基本構文
SELECT カラム名, 集計関数(カラム名)
FROM テーブル名
GROUP BY カラム名;
使用例
テーブル:sales(売上データ)
| id | 商品名 | 金額 |
|----|--------|------|
| 1 | パン | 100 |
| 2 | パン | 120 |
| 3 | 牛乳 | 200 |
| 4 | パン | 110 |
| 5 | 牛乳 | 220 |
商品ごとの売上合計を出す場合:
SELECT 商品名, SUM(金額) AS 合計金額
FROM sales
GROUP BY 商品名;
実行結果:
| 商品名 | 合計金額 |
|--------|----------|
| パン | 330 |
| 牛乳 | 420 |
注意点
-
GROUP BY
句に指定されていないカラムをSELECT
に含めるとエラーになる(またはDBにより未定義の動作)。 -
GROUP BY
の後に複数カラムを指定することで、より細かい集計も可能。
よく使う集計関数
-
SUM(カラム)
:合計 -
AVG(カラム)
:平均 -
COUNT(*)
:件数 -
MAX(カラム)
:最大値 -
MIN(カラム)
:最小値
まとめ
GROUP BY
は、データをカテゴリ別に集計するための強力なSQL機能です。
売上集計や件数の集約など、日常的なデータ分析に広く使われています。
基本を押さえつつ、複数カラム指定やHAVING句と組み合わせた条件指定にもチャレンジしてみます!