01 / 04
実データで分析する
INPUT · スライド
会員を属性ごとに数える
02 / 04
どの列でまとめるか決める
「◯◯ごと」と言われたら、その◯◯が GROUP BY に書く列だよ。地域ごとなら area、会員種別ごとなら plan。
集計した列には AS で名前を付けておこう。結果が読みやすくなるし、ORDER BY でもその名前が使えるよ。
SELECT area, COUNT(*) AS 人数 FROM members GROUP BY area;実行結果
中央町 | 4 北町 | 5 南町 | 2 東町 | 1
03 / 04
まとめてから並べる
人数の多い順に見たいときは、集計した列で並べればいい。AS で付けた名前をそのまま ORDER BY に書けるよ。
同じ人数のグループがあると順番が決まらない。そういうときは2つ目の並び順を足しておこう。
SELECT area, COUNT(*) AS 人数 FROM members GROUP BY area ORDER BY 人数 DESC;実行結果
北町 | 5 中央町 | 4 南町 | 2 東町 | 1
04 / 04
数える以外もまとめられる
AVG や MAX も同じ形で使える。GROUP BY を付ければグループごとの平均や最大が出るよ。
1つのクエリに集計をいくつ並べてもいい。列が横に増えるだけだよ。ここから書いてみよう。
SELECT plan, COUNT(*) AS 人数, AVG(age) AS 平均年齢 FROM members GROUP BY plan;実行結果
ふつう | 7 | 28 プレミアム | 5 | 40