我有以下两个表(学生和分数):在student表中我有关于学生的信息,在marks表中我有关于学生获得分数的信息。现在你能告诉我如何找出谁在计算marks表中的总得分时得到了最高的分数吗?
提前谢谢:)
有些人可能会发现这个问题的重复-how to find the highest value in mysql table但在我的辩护中,我的问题略有不同。:)
学生桌:

studentid   student_name
 1001        Jon Bon Jovi
 1002        Charlie Sheen
 1003        Jason Statham
 ... Goes on like this

标记表:
id   studentid totalmark obtainedmark
1     1001       20          12
2     1002       20          20
3     1003       20          15
4     1001       50          40
5     1002       50          50
6     1003       50          45
... Goes on like this

最佳答案

这将返回得分最高的人:

SELECT s.studentid, s.student_name, SUM(m.obtainedmark) as c
FROM students s INNER JOIN marks m ON s.studentid = m.studentid
GROUP BY s.studentid
ORDER BY c DESC
LIMIT 1

不过,看看您的表,返回最高的平均测试分数并返回其获得的平均百分比可能更有用。我相信,你可以通过以下方式做到这一点:
SELECT s.userId, s.name, AVG( ( m.obtainedmark / m.totalmark ) ) as c
FROM bnt_users s INNER JOIN bnt_user_skill_rating m ON s.userId = m.user_id
GROUP BY s.userId
ORDER BY c DESC
LIMIT 2;

关于php - 如何找出最高的总值(value),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8771017/

10-13 08:02