mysql中查询每门课程成绩最好的前两名
有2个表,score表跟course表。score存放所有学生的课程成绩,course存放所有课程的信息。现在要查处每个课程下成绩前2名的学生。
第一种方法:
只把课程表作为主表,分别查询第一名、第二名的学生id或姓名。
SELECT CO.cname 课程,(select sc.student_idfrom score scwhere sc.course_id = co.cidorder by sc.num limit 0, 1) 第一名,(select sc.student_idfrom score scwhere sc.course_id = co.cidorder by sc.num limit 1, 1) 第二名from course co;
这种方法比较好理解,但效率比较低一点,要把score表查询2遍。于是想到oracle中用with。。。as创建临时表,想到这样的写法。
with t as
(select sc.student_idfrom score scwhere sc.course_id = co.cidorder by sc.num)SELECT CO.cname 课程,(select * from t limit 0, 1) 第一名,(select * from t limit 1, 1) 第二名from course co;
运行后报错,发现自己是5.5版本,不支持with as的写法,高版本的可以试下。
第二种方法:
select sc.course_id, sc.student_idfrom score scleft join score sbon sc.course_id = sb.course_idand sc.num < sb.numgroup by sc.course_id, sc.student_id
having count(sc.course_id) < 2
这种方法的原理是查询同一门课程中,比自己分数高的学生的数量,第一名比自己高的数量为0,第二名为1,第三名为2.以此类推,所以只要查询count()<2即可
mysql中查询每门课程成绩最好的前两名相关推荐
- mysql查询每门课程成绩最好的前两名学生id和姓名
创建库:create database db6; 库下面创建表: 班级表: mysql> create table class(cid int not null unique auto_incr ...
- 查询每门课程成绩最好的前两名
建表语句点击详见 – 查询每门课程成绩最好的前两名 SELECT sc.c_id, sc.s_score FROM score sc WHERE ( SELECT COUNT(*) FROM scor ...
- mysql查询每门功课成绩最好的前两名_用一个SQL查询语句得出每门功课成绩最好的前两名 - SQL Server论坛 - 51CTO技术论坛_中国领先的IT技术社区...
有一个学生表,里面有 学号 功课编号 学生成绩三个字段. 用一个SQL查询语句得出每门功课成绩最好的前两名 学号 功课编号 学生成绩 1 1 99 ...
- mysql查询成绩大于89分_查询每门课程成绩都大于80分学生的姓名
转载的sql语句 .1 查询每门课程成绩都大于80分学生的学号 数据库 表 student name score course A 85 语文 A 75 数学 A 82 英语 B 75 语 ...
- mysql 查询前两名_Mysql:查询每门课程成绩的前两名
一张成绩表,查询每门课程的前两名,咋一看无从下手,其实可以理解为表自连接 . 建表语句: CREATE TABLE `Department` ( `Id` int(11) NOT NULL DEFAU ...
- 查询成绩最好的前两名_SQL查询整理
SQL查询相关知识整理 习题中会用到的表 一.简单查询 1.查询姓"猴"的学生名单 select 学号,姓名 from student where 姓名 like '猴%': 2. ...
- mysql查询课程最高分_在“成绩管理”数据库中,查询每门课程的最高分,要求得到的信息包括课程名称和分数。正确的命令是( )。 A.SELE_搜题易...
统计只有2名以下(含2名)学生选修的课程情况,统计结果中的信息包括课程名称.开课院系和选修人数,并按选课人数排序.正确的命令是( ). A.SELECT 课程名称,开课院系,COUNT(课程编号)A ...
- mysql 排名_学会在MySQL中实现Rank高级排名函数,所有取前几名问题全部解决.
MySQL中没有Rank排名函数,当我们需要查询排名时,只能使用MySQL数据库中的基本查询语句来查询普通排名.尽管如此,可不要小瞧基础而简单的查询语句,我们可以利用其来达到Rank函数一样的高级排名 ...
- 查询成绩最好的前两名_收藏转发!一线老师用真实数据告诉你,高考成绩和平时成绩的关系...
临近高考,多数考生家长变得不淡定了,他们比考生更焦虑,比自己考试更紧张!不断有考生家长在询问:高考成绩和平时的考试成绩有没有关系?一模二模和三模,哪次考试成绩和高考更接近?高考分数比平时考试高还是低? ...
最新文章
- Java中throw re_详解Java编程中throw和throws子句的使用方法
- 电脑cpu排名_可能是最详细的小白【笔记本电脑】选购攻略(附热门机型推荐)...
- mongodb 监控项详解(mms)
- 电脑中没有oracle服务器,用AnySQL在没有oracle客户端的服务器上发送邮件
- Activity生命周期的学习和验证
- MySQL 精选 60 道面试题(含答案)
- 打包签名时出现Conversion to Dalvik format failed with error 1
- 广西桂林平均工资是多少?
- apache mod_autoindex 详解
- 模块化无人机,不仅配置高,还颜值爆表
- cad shx 字体读取
- NBA球员数据的爬取
- 大学计算机课程进制的转换教程,交大计算机课程(1):各种进制转换
- Home Barbering Grows In Recession, With Hairy Results
- QQ音乐爬虫之放弃的路
- 记一次查询性能优化,原30s+,现0.5s~20s
- 减缓衰老,让T细胞染色体“变长”就行,还能提高免疫力|Nature子刊
- 拉拉米抢单发单系统源码+二开ui带视频介绍+ 放量功能
- python爬取高德地图数据_你的未来有我导航----教你如何爬取高德地图
- 考研复试英语口语最全攻略!