1

我正在尝试计算交易表上的百分比。如果我使用视图,我可以达到我想要的效果,但是对于我正在处理的数字,更快的东西会更受欢迎。

表(betID 是唯一的):

投注ID | 用户名 | 成功  
 1 | 1 | -1
 2 | 1 | 1
 3 | 2 | -1
 4 | 3 | 1

我想找到每个用户的获胜百分比。我有一种强烈的感觉,我错过了一些小东西,并且会为答案而踢自己,但是我看过的所有示例都无法开始工作。谢谢你的帮助!

4

1 回答 1

0

百分比是成功次数除以投注次数。

困难的部分是在不执行额外选择语句的情况下计算成功次数。

答案是将 -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 回答