我怎样才能找到每门课程的最高成绩的学生编号
how can i find each course`s student id that has max grade
我们需要编写一个查询,以获取所有在所修课程中成绩最高的学生的 student_id
- 它将 return 中每门课程中最好的学生也就是说。
约束:查询必须有子查询
the data base
一开始我试过这样写
select student_id
from Student s
where s.course_id in
(select course_id, max(grade) from course c, grade g
where g.course_id = c.course_id
group by course_id)
但我认为它不会起作用,因为子查询只会 return 所有课程的最高成绩。
所以我试过了,但我不确定它是否有效。
select student_id
from Student s
where s.course_id in
(select course_id from grade g1
where g1.grade = (select max(grade) from grade g where g.course_id = s.course_id)
如果有人能给我任何使用子查询的提示,我将不胜感激
这是一种方法:
select c.course_name, s.student_name, g.grade
from grade g
inner join course c on c.course_id = g.course_id
inner join student s on s.student_id = g.student_id
where g.grade = (select max(g1.grade) from grade g1 where g1.course_id = g.course_id)
逻辑是连接三个表,并使用相关子查询来过滤每门课程的最高分。
这会带来每门课程的最高成绩,以及相应的学生。如果有顶级联系,它们都会出现在结果中。
当然,如果你只是想要学生和课程的id,joins就没有必要了,你可以这样做:
select g.*
from grade g
where grade = (select max(g1.grade) from grade g1 where g1.course_id = g.course_id)
我们需要编写一个查询,以获取所有在所修课程中成绩最高的学生的 student_id
- 它将 return 中每门课程中最好的学生也就是说。
约束:查询必须有子查询
the data base
一开始我试过这样写
select student_id
from Student s
where s.course_id in
(select course_id, max(grade) from course c, grade g
where g.course_id = c.course_id
group by course_id)
但我认为它不会起作用,因为子查询只会 return 所有课程的最高成绩。 所以我试过了,但我不确定它是否有效。
select student_id
from Student s
where s.course_id in
(select course_id from grade g1
where g1.grade = (select max(grade) from grade g where g.course_id = s.course_id)
如果有人能给我任何使用子查询的提示,我将不胜感激
这是一种方法:
select c.course_name, s.student_name, g.grade
from grade g
inner join course c on c.course_id = g.course_id
inner join student s on s.student_id = g.student_id
where g.grade = (select max(g1.grade) from grade g1 where g1.course_id = g.course_id)
逻辑是连接三个表,并使用相关子查询来过滤每门课程的最高分。
这会带来每门课程的最高成绩,以及相应的学生。如果有顶级联系,它们都会出现在结果中。
当然,如果你只是想要学生和课程的id,joins就没有必要了,你可以这样做:
select g.*
from grade g
where grade = (select max(g1.grade) from grade g1 where g1.course_id = g.course_id)