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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL:选课表(学号,课程号,成绩),现要查询成绩最高的三个学生的学号、课程号和成绩,包括并列情况相关的知识,希望对你有一定的参考价值。

SQL:选课表(学号,课程号,成绩),现要查询成绩最高的三个学生的学号、课程号和成绩,包括并列情况SELECT学号,课程号,成绩 FROM 选课表
接下面怎么写

select * from 选课 where 成绩>=(select 成绩 from (select 成绩,row_number()over(order by 成绩 desc nulls last ) r from 选课) where r=3) order by 成绩 desc。
考虑了并列关系,原理是先求出第三名同学的成绩,然后与第三名同学的成绩相等的同学认为等同于第三名,最后输出的是前三名同学,和第三名并列的也一并输出。如果看不懂里面某个代码可以告诉我,我用的是ORACLE。
参考技术A SELECT 学号,课程号,成绩 FROM 选课表 WHERE 学号 IN (SELECT TOP 3 FROM 选课表 GROUP BY 学号 ORDER BY SUM(成绩) DESC) 参考技术B SELECT * FROM 选课表 WHERE 成绩 IN (SELECT TOP 3 DISTINCT(成绩) FROM 选课表) 参考技术C COUNT(DISTINCT 选课表.学号)

用SQL完成查询,设有一个简单的教学管理数据库,其关系模式为:

设有一个简单的教学管理数据库,其关系模式为:
学生(学号,姓名,专业,年龄)
课程(课程号,课程名,学分,先行课课程号)
选修(学号,课程号,成绩)
用SQL完成如下查询:
(1)查询“通信工程”专业的所有学生信息
(2)查询所有课程的课程号和学分
(3)查询学生张珊所选课程的课程号及成绩
(4)查询选了所有课程的学生的学号
(5)查询没有选课的学生信息
(6)查询选修了“数据库原理”的先行课的学生学号
(7)删除学号为“9501”的同学的所有选课记录
(8)修改张林“数据库原理”课程的成绩为89
(9)建立选修了“数据库原理”的所有学生的学号、姓名级成绩视图
(10)在小题9的视图基础上,查询成绩大于90的相关信息

参考技术A

太多了,懒得一个个写。

建议去看王珊等《数据库系统概论》,书上的例题就是这样的关系模式。

以上是关于SQL:选课表(学号,课程号,成绩),现要查询成绩最高的三个学生的学号、课程号和成绩,包括并列情况的主要内容,如果未能解决你的问题,请参考以下文章

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

sql查询练习

数据库查询语句

挑战SQL经典题(一)

SQL数据库语言基础之SqlServer数据库原理与设计课程期末复习-条件查询实例练习学生表选课表家庭作业表

sql 调用已经建立的存储过程