如何在MySql中进行求和和分割
好的,所以我有一个用户表,并希望获得最高点数除以得分的最大值。 下面是我正在寻找的一个粗略的想法:
SELECT MAX(SUM(points)/SUM(score)) FROM users
我对增加栏目和划分不感兴趣,相反我有兴趣为每个用户划分积分和得分,并从中获取最高的价值。
也许你可以用子查询来做到这一点:
Select max(points_over_Score)
from
(Select points/score AS points_over_score
from users);
正如评论中提到的那些无名小卒一样,这大概可以缩短到
SELECT MAX(points/score) FROM users;
你写的关于你想要做的事情的描述并没有说清楚为什么你的例子中有SUM
,所以我没有使用它。
此外,像这样的代码问题更适合于stackoverflow.com。 您可以标记自己的问题,让管理员迁移它。
如果你需要总结所有的积分,然后把所有的积分总结出来,然后再将它们分开,那么FrustratedWithFormsDesigner的答案将不起作用。 该答案将每个点除以得分,然后返回最高答案。
这应该工作:
SELECT MAX(sum_points / sum_score) from
(SELECT SUM(points) as sum_points, SUM(score) as sum_score FROM users)
顺便说一句,这返回一个“不寻常”的百分比。 您可能想要按积分分数。 例如,如果您得到70分(满分100分),即70分,或得分(70分)/分(100分)。
我不确定是否这是由于这个帖子或MySQL版本的年龄,但当我尝试上述解决方案时,抛出了以下错误:
错误1248(42000):每个派生表都必须有自己的别名
我能够解决这个使用以下内容:
SELECT MAX(sum_points / sum_score) from (SELECT SUM(points) as sum_points, SUM(score) as sum_score FROM users) as max_value;
上一篇: How to sum and divide in MySql
下一篇: Outlook Object Library Does Not Switch Between Versions 12 And 14