nullジマ

GROUP BY

GROUP BYは同じ値を持つ行をグループ化し、集計関数と一緒に使います。 グループごとに集計する

基本文法

SELECT group_column, COUNT(*)
FROM table_name
GROUP BY group_column;

例題

部署別の社員数

部署IDでグループを作り、COUNT()で社員数を数えます。

SELECT department_id, COUNT(*) AS employee_count FROM employees GROUP BY department_id;

部署別の平均給与

AVG()でグループごとの平均値を求めます。

SELECT department_id, AVG(salary) AS avg_salary FROM employees GROUP BY department_id;

カテゴリ別の商品数と平均価格

複数の集計関数を同時に使えます。

SELECT category, COUNT(*) AS product_count, AVG(price) AS avg_price FROM products GROUP BY category;

知っておくと便利なこと

  • SELECTに書く集計対象以外のカラムは、GROUP BYにも指定するのが基本です。
  • COUNT(*)は行数を数え、COUNT(column)はNULLを除いて数えます。
  • グループの集計結果を絞り込む場合はHAVINGを使います。

練習問題