SQL查询每课成绩最高的学生的信息

如题所述

大概思路是找出单科最高成绩,再跟成绩表关联找出学生。

假设成绩表有字段科目ID、学生ID、学生成绩三个字段
大概以下SQL,可以参考下:
select 科目ID、学生ID、学生成绩 b.最高成绩 from 成绩表 a
left join
(select 科目ID,max(学生成绩) as 最高成绩 from 成绩表 group by 科目ID) b
on (a.科目ID=b.科目ID and a.学生成绩=b.最高成绩)
where b.最高成绩 is not null;
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-11-22
select distinct * from (
select 需要抽取的字段 from 学生成绩表 a where a.语文 = (select max(语文) from 学生成绩表)
union all
select 需要抽取的字段 from 学生成绩表 a where a.数学 = (select max(数学) from 学生成绩表)
union all
select 需要抽取的字段 from 学生成绩表 a where a.英语 = (select max(英语) from 学生成绩表)
。。。) b
如果需要包含学科成绩,那还要做处理。本回答被网友采纳
第2个回答  2017-06-17
select max(mark)

第3个回答  2011-11-22
select max(语文),max(数学),max(英语) from 学生成绩表
max函数表示最大值
第4个回答  2011-11-24
select 学号
from xs-kc a
where 成绩=
(select max(成绩)
from xs-kc b
where a 课程号=b 课程号)

查询每门课成绩最高分的同学的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 )

用sql代码查询课程成绩大于80分的所有学生成绩
在进行数据库查询时,使用SQL语句能够高效地获取所需数据。例如,当我们想要查询所有课程成绩超过80分的学生时,可以采用以下SQL代码:SELECT ID, 学生姓名, 成绩 FROM 表名 WHERE 成绩 > 80。这条语句的具体含义是,从名为“表名”的数据库表中筛选出成绩大于80分的记录,并显示学生的ID、姓名和成绩...

SQL查询每课成绩最高的学生的信息
大概以下SQL,可以参考下:select 科目ID、学生ID、学生成绩 b.最高成绩 from 成绩表 a left join (select 科目ID,max(学生成绩) as 最高成绩 from 成绩表 group by 科目ID) b on (a.科目ID=b.科目ID and a.学生成绩=b.最高成绩)where b.最高成绩 is not null;...

mysql中怎么查找本班的某科成绩的最高?
1. 使用INNER JOIN将分数表和班级表连接起来,确保查询结果只包含指定班级的记录。2. 使用INNER JOIN将步骤1的结果与课程表连接,确保筛选出的课程是目标科目。3. 在最终查询语句中,使用`MAX()`函数和`WHERE`子句,限定班级和科目,找出最高成绩。示例语句如下:sql SELECT MAX(f.score) FROM (SELE...

SQL查询数据库中最高分学生的信息, 怎么写?
t1 学生信息表 编号 姓名 t2 学生成绩表 编号 课程编号 学生编号 成绩 t3 课程信息表 编号 课程 select t1.* , t3.课程, t.成绩 from t1 left join (select min(编号) 编号, 课程编号, max(成绩) 成绩 from t2 group by 课程编号) t on t1.编号 = t.学生编号 left join t3 on t2....

sqlserver查询各系各科成绩最高分的学生的学号,姓名,系名,课程名称,成 ...
student.sdept;上述语句已经测试通过。代码思路是:学生表与成绩表基于学号进行连接获取每个学号所在系名,然后用院系和课程号对成绩表分组汇总,求得每个院系、每个课程的最高得分(结果集c,含系名、课程号和最高分)。然后用结果集C再次与成绩表、学生表进行比对,筛选出获得每个系、每个课程的最高分...

用sql如何查询课程成绩排名呢?
1、查询“001”课程比“002”课程成绩高的所有学生的学号:SELECT * FROM tblScore ts1, tblScore ts2 WHERE ts1.stuid = ts2.stuid AND ts1.courseid = '001' AND ts2.courseid = '002 AND ts1.score > ts2.score 2、查询平均成绩大于60分的同学的学号和平均成绩:SELECT stu.stuid, ...

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

急,如何在sql里面显示score表中的最高分的学生学号和课程号
1、首先在打开的sql软件中,在SC表中找到学了C2的学生学号。2、然后,就可以设置投影列和数据源,如下图所示。3、此时,就可以在这里进行两层关系的连接,如下图所示。4、这个时候可以利用【=Any】的方式进行判断是否在这个集合之中。5、【=Any】和【In】两个的用法其实基本相同,只要有一个满足就...

用sql查询出课程总分数最高的学生姓名
select name,max(a.fenshu) from (select name,sum(fenshu) as fenshu group by name) as a group by name

相似回答