当前位置:首页 » 编程语言 » Sql每门学科最高分的姓名
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

Sql每门学科最高分的姓名

发布时间: 2022-11-03 21:49:18

sqlserver查询各系各科成绩最高分的学生的学号,姓名,系名,课程名称,成绩

请参考下列SQL语句:

selectstudent.sno,student.sname,student.sdept,
course.cname,t.maxgradefrom
student,course,
(selects.sno,c.sdept,s.cno,c.maxgrade
fromscs,studentst,
(selecta.sdept,b.cno,max(b.grade)asmaxgrade
fromstudenta,scbwherea.sno=b.sno
groupbya.sdept,b.cno)c
wheres.sno=st.snoandst.sdept=c.sdeptand
s.grade=c.maxgrade)twherestudent.sno=t.sno
andcourse.cno=t.cnoorderbycourse.cname,student.sdept;

上述语句已经测试通过。代码思路是:

学生表与成绩表基于学号进行连接获取每个学号所在系名,然后用院系和课程号对成绩表分组汇总,求得每个院系、每个课程的最高得分(结果集c,含系名、课程号和最高分)。然后用结果集C再次与成绩表、学生表进行比对,筛选出获得每个系、每个课程的最高分的学号并包含课程号和系名(结果集t)。最后t通过连接获取学生表中的学生姓名、课程表中的课程名完成最后输出。

⑵ sql语言将clsaa为二班每门成绩最高的同学id和姓名以及学科和分数打印出来

假设有这么一个表
create table tables(
id int primary key,
class varchar(255),
name varchar(255),
courese varchar(255),
grade double(5,2)
);
#显示x表的id,姓名,课程,成绩,
select x.id,x.name as "姓名",
x.courese as "课程" ,x.grade as "成绩"
#x表为tables表
from tables as x,
#查询 按照课程查找成绩的最大值,返回课程于成绩给y表
(select courese, max(grade) as grade
from tables
where class like "二班"
group by courese) as y
#条件:x表的班级为二班,x表的课程要于y表的课程一样,x表的成绩要于y表的成绩一样
where x.class like "二班" and x.courese like (y.courese) and x.grade=y.grade;
#成绩一样的也会输出

⑶ sql,查询每门课程最高分的学生的学号,课程号,成绩。再一张表里

select 学号, 课程号 , 成绩 from 表A ( select 课程号 ,max(成绩) AS mCJ from 表A group by 课程号) B where 表A课程号=B.课程号 AND 表A.成绩 =B.mCJ

⑷ sql求各科成绩最高分

可以使用MAX函数:求最大值
SELECT 科目,MAX(分数)
FROM 表名
GROUP BY 科目

⑸ 如用使用sql语言列出每门课最高分的学生的信息

select 学生.学号, 学生.姓名, max(选课.成绩)over(partition by 选课.课程编码) as '最高成绩' , 选课.课程编码 ,课程.课程名称
from 学生,选课,课程
where 学生.学号=选课.学号 and 选课.课程编码=课程.课程编码

这样就可以把每门课程最高成绩的学生信息查询出来
可以在select 后面多加一列想要的学生信息

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

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 )

⑺ SQL求各科成绩最高分,显示最高成绩的姓名及成绩

selectSname,scorefromStudent,ScwhereStudent.Sno=Sc.Snoandscore=(selectMAX(score)fromScwhereSc.Sno=Student.Sno)
--或者
selectSname,scorefrom(
selectSname,score,row_number()over(partitionbySc.SnoorderbyscoreDesc)AsRkfromStudent,ScwhereStudent.Sno=Sc.Sno
)Swhererk=1

⑻ SQL查询数据库中最高分学生的信息, 怎么写

SELECT
TOP
1
学生信息表.学号
学生信息表.学生姓名
学生信息表.性别
学生成绩表.科目编号
学生成绩表.成绩
FROM
学生信息表
INNER
JOIN
学生成绩表
ON
学生信息表.学号=学生成绩表.学号

⑼ sql3表联查,查询每科的最高分同学的名字,该科名字,和该科分数

SELECT stuname,subname,score
FROM 学生表 join 分数表 on 学生表.stuid=分数表.stuid
join 科目表 K on K.subid=分数表.subid
where score=(select MAX(score) from 分数表 where subid=K.subid)