01 / 05
「何件?」を知りたい
「記録は何件ある?」「評価を書いてくれたのは何件?」——データを見るとき、いちばんよく聞くのが件数だよ。
返ってきた行を目で数えるのは、100件を超えたら現実的じゃない。数えるのもデータベースにやらせよう。
集める・数える
INPUT · スライド
01 / 05
「記録は何件ある?」「評価を書いてくれたのは何件?」——データを見るとき、いちばんよく聞くのが件数だよ。
返ってきた行を目で数えるのは、100件を超えたら現実的じゃない。数えるのもデータベースにやらせよう。
02 / 05
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 と組み合わせれば「条件に合う行は何件?」が出せる。これがいちばん出番の多い使い方だよ。
条件に合う行が1つもなければ、COUNT の答えは0。エラーではなく0が返るのが気持ちいいところ。
SELECT COUNT(*) FROM sales WHERE stall = 'こもれび堂';実行結果
3
05 / 05
かっこの中に DISTINCT 列名 を書くと、値の種類がいくつあるかを数えてくれる。節1でやった「重複を消す」と「数える」の合わせ技だよ。
お店の一覧を出して目で数えるより早いね。ここから書いてみよう。
SELECT COUNT(DISTINCT stall) FROM sales;実行結果
3