SQL查询每门课程最高分学生的学号,课程号,成绩

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL查询每门课程最高分学生的学号,课程号,成绩相关的知识,希望对你有一定的参考价值。

首先你得告诉我们你有几张表,表里都有什么列,然后我们才能决定怎么查,是连接查询还是你的所有数据都在一个表里。在此我先给出都在一个表的情况:select 学号,课程号,成绩 from 表名 where 表主键 in(select 表主键 from 表名 where 学分=max(学分) group by 课程号) 参考技术A select t1.学号,t1.课程号,t1.成绩
from table t1
where t1.成绩 = (
select max(t2.成绩)
from table t2
where t2.课程号 = t1.课程号
group by t2.课程号
)
参考技术B select
学号,课程号,成绩,max(分数)
from tableName

group by 学号,课程号,成绩

查询每门课成绩最高分的同学的sql语句,输出课程名,姓名,学号,分数。表的结构如下。写出完整的sql语句

select cname,sname,sc.sno,grade
from student,SC,course
where student.sno =SC.sno and SC.cno =course.cno and grade=(select MAX(grade) from SC where SC.cno =course.cno )
参考技术A 首先三表连接,然后select max(分数),姓名,学号, 课程 from 连接表 group by 姓名,学号, 课程
即可。
参考技术B SELECT cname,sname,student.sno,grade
FROM student join sc on student.sno=sc.sno
join course on course.cno=sc.cno
where grade=(select max(grade)
from sc
where cno=course.cno )
参考技术C select cname,sname,student.sno,sc1.grade

from student join SC as sc1 on student.sno=sc1.sno
join course on sc1.cno=course.cno
where not exists(
select * from SC as sc2
where sc1.cno=sc2.cno and sc1.grade<sc2.grade)and grade is not null
order by sc1.cno

以上是关于SQL查询每门课程最高分学生的学号,课程号,成绩的主要内容,如果未能解决你的问题,请参考以下文章

SQL:查询每门课程的课程名、选课学生姓名及其学号,选课人数

SQL:选课表(学号,课程号,成绩),现要查询成绩最高的三个学生的学号、课程号和成绩,包括并列情况

sql server查询问题。

查询每门课成绩最高分的同学的sql语句,输出课程名,姓名,学号,分数。表的结构如下。写出完整的sql语句

sql排序问题 查询学生成绩5-7名的学生学号、课程号、成绩

sql排序问题 查询学生成绩5-7名的学生学号、课程号、成绩