我在我的大学学习 SQL,我正在练习这个练习并且卡住了!我有一个数据库,用于存储学生为特定教学所通过的所有考试。
这些是数据库中的表:
Student(**number**, name, birthday)
Exam(**student_number**, **teaching_code**, vote) *(store the exams passed by the students with vote)*
Teaching(**code**, name)
其中 number 是 Student 表的主键,code 用于 Teaching,“student_number”在 Student 中引用“number”,“teaching_code”在 Teaching 中引用“code”。
练习要求选择平均得分最高的学生的数字。
我知道如何编写一个查询,它给我一个包含每个学生平均数的表格,但我不知道如何从中选择最高的或如何显示相应的学生编号!
如果存在一些学生具有相同的最高平均值,则使用限制命令的解决方案不起作用......
显示每个学生的平均分数的查询是:
select avg(e.vote) as Average from STUDENT s, EXAM e
where s.number = e.student_number
group by s.number
编辑:我在 SQL 中尝试了 MAX 函数,我试过这个:
select MAX( avg(e.vote) ) as Average from STUDENT s, EXAM e
where s.number = e.student_number
group by s.number
但它说“错误代码:1111。无效使用组功能”
可能解决方案是使用嵌套查询,但我无法实现。