如何从单个表中计算百分比

时间:2012-11-27 21:17:05

标签: mysql

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

表(betID是唯一的):

betID | userID | success  
 1    |  1     |  -1
 2    |  1     |   1
 3    |  2     |  -1
 4    |  3     |   1

我想找到每个用户的胜率。我有一种强烈的感觉,我错过了一些小事,并且会为自己的答案而努力,但我看过的所有例子都无法开始工作。谢谢你的帮助!

1 个答案:

答案 0 :(得分:0)

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

困难的部分是在不做额外选择声明的情况下计算成功次数。

答案是将-1值转换为0值,以便成功的总和为您提供成功的数量(我假设-1是一个损失):

select userID, sum(if(success = 1, 1, 0)) / count(*) * 100 as pct  from bets group by userID;