COUNT, SUM, AVGで集計しよう
ストーリー
「先輩、社員は全部で何人ですか?平均給料はいくらですか?」
「集計関数を使えばすぐにわかるよ」
「集計関数...?」
「COUNT、SUM、AVGみたいな関数のことだよ。Excelの関数と同じ感覚で使えるんだ」
集計関数とは
集計関数 = 複数の行をまとめて1つの結果を返す関数です。
Excelとの対比
| Excel | SQL | 意味 |
|---|---|---|
=COUNTA(A:A) | COUNT(*) | 行数を数える |
=SUM(D:D) | SUM(salary) | 合計を求める |
=AVERAGE(D:D) | AVG(salary) | 平均を求める |
=MAX(D:D) | MAX(salary) | 最大値を求める |
=MIN(D:D) | MIN(salary) | 最小値を求める |
COUNT - 行数を数える
COUNT(*) - 全行数を数える
sql
SELECT COUNT(*) FROM employees;実行結果:
COUNT(*)
--------
8
社員は全部で 8人 です。
COUNT(カラム名) - NULLを除いて数える
sql
SELECT COUNT(department) FROM employees;実行結果:
COUNT(department)
-----------------
8
COUNT(*)とCOUNT(カラム名)の違い:
COUNT(*)→ NULL を含めて全行を数えるCOUNT(カラム名)→ そのカラムが NULL の行を除いて数える今回はNULLがないので同じ結果ですが、NULLがあるデータでは差が出ます。
SUM - 合計を求める
sql
SELECT SUM(salary) FROM employees;実行結果:
SUM(salary)
-----------
2680000
全社員の給料の合計は 2,680,000円 です。
商品の在庫合計
sql
SELECT SUM(stock) FROM products;実行結果:
SUM(stock)
----------
305
AVG - 平均を求める
sql
SELECT AVG(salary) FROM employees;実行結果:
AVG(salary)
-----------
335000.0
全社員の平均給料は 335,000円 です。
商品の平均価格
sql
SELECT AVG(price) FROM products;実行結果:
AVG(price)
----------
25350.0
MAX / MIN - 最大値・最小値を求める
最高給料と最低給料
sql
SELECT MAX(salary), MIN(salary) FROM employees;実行結果:
MAX(salary) MIN(salary)
----------- -----------
400000 280000
- 最高給料: 400,000円(鈴木一郎)
- 最低給料: 280,000円(伊藤健太)