集計関数
集計関数は複数行のデータを1つの値に要約します。 COUNT / SUM / AVG
基本文法
SELECT COUNT(*), SUM(column_name), AVG(column_name), MAX(column_name), MIN(column_name)
FROM table_name;例題
全社員の人数
COUNT(*)はテーブルの行数を返します。
SELECT COUNT(*) AS employee_count FROM employees;給与の統計
合計、平均、最大、最小を同時に求めます。
SELECT SUM(salary) AS total_salary, AVG(salary) AS avg_salary,
MAX(salary) AS max_salary, MIN(salary) AS min_salary
FROM employees;カテゴリ別の在庫合計
GROUP BYとSUM()を組み合わせて集計します。
SELECT category, SUM(stock) AS total_stock
FROM products
GROUP BY category;知っておくと便利なこと
- COUNT(*)はNULLを含む行も数え、COUNT(column)はそのカラムがNULLの行を除きます。
- SUM、AVG、MAX、MINはNULLを集計対象から除きます。
- グループの集計値に条件を付ける場合は、WHEREではなくHAVINGを使います。
練習問題
- 部署別の社員数 · 中級 · GROUP BY, 集計関数
- 部署別の平均給与 · 中級 · GROUP BY, 集計関数
- 社員が2名以上の部署 · 中級 · HAVING, 集計関数
- カテゴリ別の最高価格商品 · 上級 · GROUP BY, 集計関数, ORDER BY