1

トランザクションテーブルのパーセンテージを計算しようとしています。ビューを使用すれば目的の効果を達成できますが、処理している数値を使用すると、より高速なものがはるかに望ましいでしょう。

テーブル(betIDは一意です):

betID | userID | 成功  
 1 | 1 | -1
 2 | 1 | 1
 3 | 2 | -1
 4 | 3 | 1

すべてのユーザーの勝率を見つけたいです。私は何か小さなものが欠けていると強く感じており、答えを求めて自分自身を蹴っていますが、私が見たすべての例は私が仕事をすることができません。助けてくれてありがとう!

4

1 に答える 1

0

パーセンテージは、成功数を賭け数で割ったものです。

難しいのは、余分なselectステートメントを実行せずに成功数を数えることです。

答えは、-1の値を0の値に変換して、成功の合計が成功の数を示すようにすることです(-1は損失であると想定しています)。

select userID, sum(if(success = 1, 1, 0)) / count(*) * 100 as pct  from bets group by userID;
于 2012-11-27T21:35:25.867 に答える