集める・数える

INPUT · スライド

取り出しながら計算する

01 / 05

表にない値がほしい

sales には price(1個の値段)と sold(売れた個数)が入っている。でも知りたいのはその商品でいくら売れたかだよね。

かけ算した列は表に入っていない。じゃあ入れておくべき? いや、取り出すときに計算すればいいんだ。

02 / 05

`SELECT` の中で計算する

SELECT に並べるのは列名だけじゃなく、計算式でもいい。price * sold と書けば、行ごとにかけ算した結果が1つの列として返ってくるよ。

* はかけ算の記号。JavaScript と同じだよ。

SELECT item, price * sold  FROM sales;

実行結果

マグカップ | 3000
木のスプーン | 3600
花のブローチ | 4200
布のバッグ | 7200
コースター | 8400
ガラスの小皿 | 5400
陶器の花びん | 4800
革のしおり | 4800

03 / 05

列の名前は書いた式そのまま

計算した列の見出しは price * sold と、書いた式がそのまま出る。まだ好きな名前を付ける書き方は習っていないので、そのまま使うよ。

つまり式の書き方を変えると見出しも変わる。教材の答えと見くらべるときは、問題文と同じ書き方にそろえよう。

04 / 05

計算した列で並べ替える

ORDER BY にも同じ式を書ける。売り上げの大きい順にすれば、いちばん稼いだ商品が先頭に来るよ。

計算式は WHERE にも書ける。列名を書けるところには式も書けると覚えておこう。

SELECT item, price * sold  FROM sales  ORDER BY price * sold DESC;

実行結果

コースター | 8400
布のバッグ | 7200
ガラスの小皿 | 5400
陶器の花びん | 4800
革のしおり | 4800
花のブローチ | 4200
木のスプーン | 3600
マグカップ | 3000

05 / 05

使える記号と、空の値の落とし穴

使えるのは + - * / の4つ。ひき算なら「100円引きにしたらいくら?」も出せるよ。

ただし空の値がまざった計算の答えは空になるrating + 1 は、評価を書いていない行では空のまま返ってくるんだ。ここから書いてみよう。

SELECT item, rating + 1 FROM sales;

実行結果

マグカップ | 6
木のスプーン | 5
花のブローチ | 
布のバッグ | 
コースター | 4
ガラスの小皿 | 6
陶器の花びん | 5
革のしおり | 4