前提・実現したいこと
こんにちは。MySQLの初心者です。
MySQLで、くじ引きの当たり/外れ表から、
各ユーザーごとの当選率を出力する方法が分かりません。
試したこと
下記コードより、元データであるくじ引きの当たり/外れ表を出力します。
CREATE TABLE lottery (user_id int, flag int); INSERT INTO lottery (user_id, flag) VALUES (100, 0), (100, 1), (100, 1), (101, 0), (101, 0), (102,1), (103, 1), (103, 0),(103, 1), (103,1);
表が出力されました。flagで、0は外れ、1は当たりを示します。
各ユーザーが引いたくじの回数はバラバラです。
+---------+------+ | user_id | flag | +---------+------+ | 100 | 0 | | 100 | 1 | | 100 | 1 | | 101 | 0 | | 101 | 0 | | 102 | 1 | | 103 | 1 | | 103 | 0 | | 103 | 1 | | 103 | 1 | +---------+------+
最終的に出力したい表(result)は、下記です。
num0: 0(外れ)を引いた回数
num1: 1(当たり)を引いた回数
total: くじ引きを引いた合計回数(num0 + num1)
winning_p: 当選率(num1/(num0 + num1))
上記の表と、コマンド
SELECT user_id, COUNT(flag) AS total FROM lottery GROUP BY user_id;
を実行して、totalまでは出力できました。
+---------+-------+ | user_id | total | +---------+-------+ | 100 | 3 | | 101 | 2 | | 102 | 1 | | 103 | 4 | +---------+-------+
しかし、
・各ユーザーidごとのnum0,num1の出力
・当選率(winning_p)の出力(%表示かつ小数点以下1桁)
のやり方がどうしても分からず、困っております。
詳しい方にご教授いただけましたら、大変助かります。
宜しくお願いします。
回答2件
あなたの回答
tips
プレビュー