SQLの集計関数とGROUP BYの使い方|初心者向け解説

SQLでデータを分析する際に欠かせないのが集計関数とGROUP BY句です。これらを活用することで、テーブル内のデータを「集計」して、より意味のある情報を取り出すことができます。この記事では、初心者の方にもわかりやすく、基本的な使い方から応用例まで解説します。
Contents
集計関数とは?
集計関数とは、複数行のデータに対して計算を行い、1つの結果を返す関数のことです。よく使われるものには以下があります。
- COUNT():行数を数える
- SUM():合計を求める
- AVG():平均を求める
- MAX():最大値を求める
- MIN():最小値を求める
例:COUNT関数
SELECT COUNT(*) AS user_count
FROM users;👉 usersテーブルに登録されているユーザー数を返します。
GROUP BYとは?
GROUP BY句は、指定した列ごとにデータをグループ化し、そのグループ単位で集計関数を使えるようにする構文です。
基本構文
SELECT 列名, 集計関数(列名)
FROM テーブル名
GROUP BY 列名;例:部署ごとの社員数を集計
SELECT department, COUNT(*) AS employee_count
FROM employees
GROUP BY department;👉 部署ごとに社員数を集計できます。
HAVING句と組み合わせる
WHERE句はグループ化前の行に条件を指定しますが、HAVING句はグループ化後の集計結果に条件を付けたいときに使います。
例:社員数が10人以上の部署を表示
SELECT department, COUNT(*) AS employee_count
FROM employees
GROUP BY department
HAVING COUNT(*) >= 10;ORDER BYとの組み合わせ
集計結果を並び替えるには ORDER BY を使います。
例:社員数が多い部署順に並べる
応用例:複数列でGROUP BYする
複数の列を指定すると、より細かいグループごとの集計が可能です。
例:部署×役職ごとの社員数を集計
SELECT department, position, COUNT(*) AS employee_count
FROM employees
GROUP BY department, position;まとめ
- 集計関数はテーブル内のデータをまとめるために使う(COUNT, SUM, AVGなど)。
- GROUP BYはグループごとに集計するための句。
- HAVINGを使えば集計後の条件指定ができる。
- ORDER BYで結果を並び替えると見やすくなる。
SQLを使ったデータ分析の第一歩として、ぜひ活用してみてください。

