集める・数える

INPUT · スライド

行数を数える

01 / 05

「何件?」を知りたい

「記録は何件ある?」「評価を書いてくれたのは何件?」——データを見るとき、いちばんよく聞くのが件数だよ。

返ってきた行を目で数えるのは、100件を超えたら現実的じゃない。数えるのもデータベースにやらせよう。

02 / 05

`COUNT(*)` で全行

COUNT(*) と書くと、返ってくる行の数が分かる。* は「行そのもの」を指していて、どの列に何が入っていても1行として数えるよ。

sales は8行。数えなくても数字で返ってきたね。

SELECT COUNT(*) FROM sales;

実行結果

8

03 / 05

列を指定すると空を数えない

かっこの中に列名を書くと、その列に値が入っている行だけを数える。rating は2行が空なので、答えは6になるよ。

つまり COUNT(*)COUNT(列名) の差が「その列が空の行の数」。使い分けが大事だよ。

SELECT COUNT(*), COUNT(rating)  FROM sales;

実行結果

8 | 6

04 / 05

`WHERE` で条件に合う件数

WHERE と組み合わせれば「条件に合う行は何件?」が出せる。これがいちばん出番の多い使い方だよ。

条件に合う行が1つもなければ、COUNT の答えは0。エラーではなく0が返るのが気持ちいいところ。

SELECT COUNT(*) FROM sales  WHERE stall = 'こもれび堂';

実行結果

3

05 / 05

種類の数を数える

かっこの中に DISTINCT 列名 を書くと、値の種類がいくつあるかを数えてくれる。節1でやった「重複を消す」と「数える」の合わせ技だよ。

お店の一覧を出して目で数えるより早いね。ここから書いてみよう。

SELECT COUNT(DISTINCT stall)  FROM sales;

実行結果

3