寻求最高平均分学生的学号,如何编写SQL查询来关联成绩和学生表格?
P粉786432579
P粉786432579 2023-08-15 15:11:01
[MySQL讨论组]

这是我的学生表 stud 表

rollno name
1 A
2 B
3 C
4 B
5 D
6 C

这是我的成绩表 marks 表

rollno mar eng maths phy chem
1 40 45 38 50 50
2 28 50 45 41 38
3 41 42 43 44 45
4 45 44 43 42 41
5 33 32 42 15 41

对于以下查询:

select rollno,(mar+eng+maths+phy+chem)/5 as average from marks;

我得到的结果是:op

rollno average
1 44.6000
2 40.4000
3 43.0000
4 43.0000
5 32.6000

现在要找到平均分最高的学生的学号,我应该写什么查询?

我尝试使用

select rollno,max(
                    select (mar+eng+maths+phy+chem)/5 from marks
                    ) 
from marks;

但是给我返回了语法错误

P粉786432579
P粉786432579

全部回复(1)
P粉066224086

这个语法是错误的,因为子查询返回多行。在max函数中只能使用一个值。

这是一个更好的方法 -

SELECT rollno FROM marks WHERE (mar+eng+maths+phy+chem)/5 = (SELECT MAX((mar+eng+maths+phy+chem)/5) FROM marks);
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号