滚不 | 名字 |
---|---|
1 | A |
2 | B |
3 | C |
4 | B |
5 | D |
6 | C |
滚不 | 三月 | 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;
滚不 | 平均 |
---|---|
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;
这给了我语法错误
此语法不正确,因为子查询返回多行。 max 函数中只能使用一个值。
这是一个更好的方法 -
SELECT rollno FROM marks WHERE (mar+eng+maths+phy+chem)/5 = (SELECT MAX((mar+eng+maths+phy+chem)/5) FROM marks);