エビデンスで教育を考えた

頭が良くなる科学論文を紹介していきます。お勧め商品は楽天ルームで!https://room.rakuten.co.jp/room_12b7a40f6d/items

MYSQLメモ。数を数える時のコード


 今回はこんなテーブルを考えます。

create table quest (id varchar(5), time timestamp,quest_id varchar(7), win integer);

quest_idは良くあるクエスト1-3とか。winはそのクエストが成功すれば1、失敗すれば0。入力データはこんな感じ。

select * from quest;

                                                                                              • +
id time      quest_id win
                                                                                              • +
1 2020-03-19 15:55:00 101   1
1 2020-03-19 15:57:00 102   1
1 2020-03-19 16:11:00 103   0
3 2020-03-23 11:05:00 101 1
3 2020-03-23 11:07:00 102   1
3 2020-03-23 11:11:00 103   1
5 2020-03-19 16:11:00 101   0
                                                                                              • +

(なぜか歪んだ。見づらくてすいません。)


で、このとき、冒険101をやった人は3人だとわかりますが、データの桁が何十万となると数えるのは至難。そこで登場するのがcount。


101をやった人を数えたい時は

select count(DISTINCT id) from quest where quest_id='101';

                                          • +
count(DISTINCT id)
                                          • +
3
                                          • +

で出力されます。そのうちでクリアした人を求めたいなら
mysql> select count(DISTINCT id) from quest where quest_id='101' and win='1';

                                          • +
count(DISTINCT id)
                                          • +
2
                                          • +

1 row in set (0.00 sec)

で出力されます。