繁体   English   中英

如何找出最高的总价值

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM