所以我正在编写一个脚本,向游戏中表现最好的 4 名玩家颁发“奖杯”。该表记录每次“抓取”尝试、执行该尝试的用户以及是否成功。我想创建一个脚本,能够将成功抓取百分比(尝试/成功)拉到前四名
使用 mysqli 的查询本身是否可能发生类似的情况?
我已经通过循环遍历每个表条目成功地完成了代码,但是每月进行数千次尝试,这似乎是一种笨拙的方法。
这是表中一行的示例,我尝试根据 monthlyTries
/monthlySuccessful
获取前四名
id userId PetId PalId tries successfulGrabs monthlyTries MonthlySuccessful
5 44550 84564 3967 825 268 120 37
最佳答案
假设您的 success
列为 1
或 0
,您可以对成功进行求和
,然后将其除以通过 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/