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

SQLの集計関数とGROUP BYの使い方を解説するイメージ図
SQLの集計関数とGROUP BYを使ったデータ分析のイメージ

SQLでデータを分析する際に欠かせないのが集計関数GROUP BY句です。これらを活用することで、テーブル内のデータを「集計」して、より意味のある情報を取り出すことができます。この記事では、初心者の方にもわかりやすく、基本的な使い方から応用例まで解説します。

集計関数とは?

集計関数とは、複数行のデータに対して計算を行い、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を使ったデータ分析の第一歩として、ぜひ活用してみてください。

関連記事(内部リンク)