我应该写什么sql查询来找到平均分数最大的学生的rollno,其中分数和学生是不同的表?

问题描述 投票:0回答:1

这是我的学生桌stud table

滚不 名字
1 A
2 B
3 C
4 B
5 D
6 C

这是我的分数表marks table

滚不 三月 eng 数学 物理 化学
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;

我得到o/p:op

滚不 平均
1 44.6000
2 40.4000
3 43.0000
4 43.0000
5 32.6000

现在要找到平均数最大的学生的rollno,我应该写什么查询?

我尝试使用

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

这给了我语法错误

mysql subquery aggregate-functions correlated-subquery
1个回答
0
投票

此语法不正确,因为子查询返回多行。 max 函数中只能使用一个值。

这是一个更好的方法 -

SELECT rollno FROM marks WHERE (mar+eng+maths+phy+chem)/5 = (SELECT MAX((mar+eng+maths+phy+chem)/5) FROM marks);
最新问题
© www.soinside.com 2019 - 2024. All rights reserved.