実データで分析する

INPUT · スライド

分析するお店を知る

01 / 05

ここからは分析の章

ここまでで、取り出す・絞る・並べる・集める・つなぐをひととおり覚えたね。この章では新しい書き方は出てこない

代わりにやるのは、「知りたいこと」からクエリを組み立てる練習。道具はもう全部そろっているよ。

02 / 05

そよかぜマートの3つの表

題材は架空の通販サイト「そよかぜマート」。表は3つあるよ。

  • members … 会員(name area age plan joined_on
  • items … 商品(name category price cost stock
  • orders … 購入履歴(member_id item_id quantity ordered_on

price は売値、cost は仕入れ値、stock は在庫の数だよ。

03 / 05

表と表は番号でつながる

orders には商品名も会員名も入っていない。入っているのは番号だけ。

  • ordersmember_idmembersid を指す
  • ordersitem_iditemsid を指す

だから「だれが何を買ったか」を見るには番号で結合するよ。

SELECT o.id, m.name, i.name  FROM orders o  JOIN members m    ON o.member_id = m.id  JOIN items i    ON o.item_id = i.id  ORDER BY o.id LIMIT 3;

実行結果

1 | あおい | ゆのみ
2 | ひなた | ペンケース
3 | はると | ぞうきん

04 / 05

問いは3つに分けて読む

「よく売れている商品は?」みたいなざっくりした問いは、そのままではクエリにならない。3つに分けて考えよう。

  • 何を数える? … 件数? 個数? 金額?
  • どの表にある? … 1つですむ? 結合がいる?
  • どうまとめる? … 全体で1つ? グループごと?

この3つが決まれば、あとは書き写すだけだよ。

05 / 05

まずは表をのぞく

分析の最初の一手は、いつも中身を見ること。どんな列があって何行あるかを確かめてから問いを立てるよ。

迷ったら数行だけ取り出して眺めよう。ここから書いてみよう。

SELECT * FROM items  ORDER BY id  LIMIT 3;

実行結果

1 | まないた | キッチン | 1200 | 700 | 24
2 | なべしき | キッチン | 600 | 300 | 60
3 | ゆのみ | キッチン | 800 | 400 | 44