所以我正在写一个剧本,把“奖杯”颁给一个游戏的前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/

10-12 13:55