我正在尝试计算交易表上的百分比。如果我使用视图,我可以达到我想要的效果,但是对于我正在处理的数字,更快的东西会更受欢迎。
表(betID是唯一的):
betID | userID | success 1 | 1 | -1 2 | 1 | 1 3 | 2 | -1 4 | 3 | 1
我想找到每个用户的胜率。我有一种强烈的感觉,我错过了一些小事,并且会为自己的答案而努力,但我看过的所有例子都无法开始工作。谢谢你的帮助!
答案 0 :(得分:0)
百分比是成功次数除以投注次数。
困难的部分是在不做额外选择声明的情况下计算成功次数。
答案是将-1值转换为0值,以便成功的总和为您提供成功的数量(我假设-1是一个损失):
select userID, sum(if(success = 1, 1, 0)) / count(*) * 100 as pct from bets group by userID;