SUMは列の数値をすべて足し合わせて合計を求める関数です。
前回に使いましたAVGも含めて解説していきます!
データ(town)
| id | town | prefecture | population |
|---|---|---|---|
| 1 | a町 | X県 | 8500 |
| 2 | b町 | X県 | 13500 |
| 3 | c町 | Y県 | 22000 |
| 4 | d町 | Y県 | 18000 |
| 5 | e町 | Z県 | 9500 |
| 6 | f町 | Z県 | 12500 |
| 7 | g町 | X県 | 7700 |
| 8 | h町 | Z県 | 14100 |
| 9 | i町 | Y県 | 16000 |
| 10 | j町 | Z県 | 4000 |
上記データからそれぞれデータを抽出していきましょう
1.それぞれの町の人口を合計して、全体の合計人口を出す
SELECT SUM(population) AS 合計人口
FROM towns;
実行結果
| 合計人口 |
|---|
| 125800 |
2.人口が1万人以上の町だけを対象に、合計人口を出す
SELECT SUM(population) AS 合計人口
FROM towns
WHERE population >= 10000;
実行結果
| 合計人口 |
|---|
| 104800 |
3.県ごとの合計人口を出す
SELECT prefecture, SUM(population) AS 合計人口
FROM towns
GROUP BY prefecture;
実行結果
| prefecture | 合計人口 |
|---|---|
| X県 | 29700 |
| Y県 | 56000 |
| Z県 | 40100 |
AVG は、列の数値の平均値(合計 ÷ 件数)を求める関数です。
4.町ごとの平均人口を求める
SELECT AVG(population) AS 平均人口
FROM towns;
実行結果
| 平均人口 |
|---|
| 12580.0 |
5.県ごとの平均人口を出す
SELECT prefecture, AVG(population) AS 平均人口
FROM towns
GROUP BY prefecture;
実行結果
| prefecture | 平均人口 |
|---|---|
| X県 | 9900.0 |
| Y県 | 18666.7 |
| Z県 | 10025.0 |
【まとめ】
直感的に使いやすくいろんな関数とも組み合わせて使えるのでとても便利ですね!
次回はこれらを合わせて少し捻ったコードを解説していきます

コメント