所以我正在写一个剧本,把“奖杯”颁给一个游戏的前4名表演者。该表记录每个“抓取”尝试、执行该尝试的用户以及是否成功。我想创建一个脚本,它能够从成功抓取(尝试/成功)的百分比中取出前四个
在使用mysqli的查询本身中是否可能出现这种情况?
我已经通过遍历每个表条目成功地完成了代码,但是每个月都有成千上万次的尝试,这看起来是一个笨拙的方法。
下面是表中一行的示例,我试图根据monthlyTries
/monthlySuccessful
获取前四名
id userId PetId PalId tries successfulGrabs monthlyTries MonthlySuccessful
5 44550 84564 3967 825 268 120 37
最佳答案
假设你有一个success
列,要么1
要么0
你可以sum
成功除以count(*)
这是总的尝试次数
select user_id, sum(success)/count(*) percentage
from attempts a
group by user_id
order by percentage desc
limit 4
如果
success
列不是1/0值,则可以使用条件聚合select user_id, sum(case when success = 'yes' then 1 else 0 end)/count(*) as percentage
from attempts a
group by user_id
order by percentage desc
limit 4
关于php - 在SQL查询中执行算术,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31906514/