[英]How to find out the highest total value
我有两个表(学生和标记):在student
表中我有关于学生和marks
表的信息我有关于学生得到的标记的信息。 现在,请您告诉我如何找出最高分来计算从marks
表中获得的总marks
?
提前致谢 :)
ps有些人可能会发现这个问题重复 - 如何在mysql表中找到最高值但在我的辩护中我的问题略有不同。 :)
学生表:
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;
select s.studentId,s.student_name,sum(m.obtainedmark) as TotalMarks
from Student s
inner join Marks m
on m.studentid=s.studentid
group by s.studentId,s.student_name
order by TotalMarks desc
LIMIT 1
如果从标记表中选择了一个结果,则按获取的标记字段(降序)对其进行排序。 那么你将获得最高分。
SELECT * FROM `marks` ORDER BY `obtainedmark` LIMIT 0, 1
然后,您可以使用标记表中的ID从此处获取学生信息
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.