01 / 04
商品表には3つの数字がある
items には金額が2つ入っている。price が売る値段、cost が仕入れた値段だよ。stock は残っている在庫の数。
この3つで「高いのはどれか」「もうかるのはどれか」「余っているのはどれか」が言えるようになる。まずは全体から。
SELECT COUNT(*) AS 商品数, AVG(price) AS 平均価格 FROM items;実行結果
10 | 1045
実データで分析する
INPUT · スライド
01 / 04
items には金額が2つ入っている。price が売る値段、cost が仕入れた値段だよ。stock は残っている在庫の数。
この3つで「高いのはどれか」「もうかるのはどれか」「余っているのはどれか」が言えるようになる。まずは全体から。
SELECT COUNT(*) AS 商品数, AVG(price) AS 平均価格 FROM items;実行結果
10 | 1045
02 / 04
商品を1つずつ見ると10行。カテゴリでまとめれば4行になって、傾向のほうが見えてくるよ。
「カテゴリごと」だから GROUP BY category だね。
SELECT category, COUNT(*) AS 商品数 FROM items GROUP BY category;実行結果
そうじ | 2 ぶんぼうぐ | 3 インテリア | 1 キッチン | 4
03 / 04
SUM は積み上げた量、AVG は1つあたりの大きさ。同じ列でも見える景色がちがうよ。
在庫は SUM で「どれだけ抱えているか」、価格は AVG で「どのくらいの値段帯か」を見るのがふつうだね。
SELECT category, SUM(stock) AS 在庫合計, AVG(price) AS 平均価格 FROM items GROUP BY category;実行結果
そうじ | 102 | 1100 ぶんぼうぐ | 234 | 750 インテリア | 6 | 2400 キッチン | 148 | 900
04 / 04
インテリアは商品が1つだけ。平均を出しても、その1つの値段がそのまま出るだけだよ。
平均を読むときは何個ぶんの平均かを一緒に見る。だから COUNT(*) を並べておくと読み違えない。ここから書いてみよう。