php - 在 SQL 查询中执行算术运算

标签 php mysql sql

所以我正在编写一个脚本,向游戏中表现最好的 4 名玩家颁发“奖杯”。该表记录每次“抓取”尝试、执行该尝试的用户以及是否成功。我想创建一个脚本,能够将成功抓取百分比(尝试/成功)拉到前四名

使用 mysqli 的查询本身是否可能发生类似的情况?

我已经通过循环遍历每个表条目成功地完成了代码,但是每月进行数千次尝试,这似乎是一种笨拙的方法。

这是表中一行的示例,我尝试根据 monthlyTries/monthlySuccessful 获取前四名

 id  userId   PetId   PalId  tries  successfulGrabs monthlyTries   MonthlySuccessful
 5   44550    84564   3967    825      268             120               37

最佳答案

假设您的 success 列为 10,您可以对成功进行求和,然后将其除以通过 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/

相关文章:

php - Laravel - 过去 7 天的查询计数值

sql - 每 15 分钟更新一次表

php - 带有后退按钮问题的多页PHP表单

MYSQL:带有 != 语句的基本 SELECT

mysql - Laravel Eloquent 如何限制登录用户的访问权限

html - 在 SSRS 报告中显示 HTML 页面

mysql - 查询多个表并在另一个数据库表中更新结果

php - 给apache一个用户组添加文件上传权限

javascript - Flor BarChart 中的工具提示问题

php - 错误 : Unknown column 'Array' in 'field list'