実データで分析する

INPUT · スライド

売上と利益を計算で出す

01 / 04

売上はどこにも入っていない

orders にあるのは個数だけ、items にあるのは単価だけ。金額の列はどの表にもないんだ。

だから結合して掛け算で作るquantity * price が、その1注文の売上だよ。

02 / 04

結合してから掛ける

ordersitems を番号でつないでから掛け算する。計算した列には AS で名前を付けよう。

どちらの表の列かをはっきりさせるため、o. i. のように別名を頭に付けて書くよ。

SELECT o.id,       o.quantity * i.price AS 売上  FROM orders o  JOIN items i    ON o.item_id = i.id  ORDER BY o.id LIMIT 3;

実行結果

1 | 1600
2 | 1500
3 | 2000

03 / 04

全部足せば総売上

1注文ずつの売上を SUM でまとめれば総売上。GROUP BY を足せば、商品ごと・カテゴリごとの売上になるよ。

掛け算の式をそのまま SUM のかっこに入れるのがポイント。

SELECT SUM(o.quantity * i.price)         AS 売上  FROM orders o  JOIN items i    ON o.item_id = i.id;

実行結果

30000

04 / 04

利益は差に個数を掛ける

利益は「売値から仕入れ値を引いた額」に個数を掛けたもの。かっこの位置を間違えないようにね。

売上が大きくても利益が小さい商品はよくある。両方を並べて見るくせをつけよう。ここから書いてみよう。

SELECT SUM(o.quantity *           (i.price - i.cost))         AS 利益  FROM orders o  JOIN items i    ON o.item_id = i.id;

実行結果

15510