mysql写出总分最高的学生姓名_编写SQL语句查询出每个各科班分数最高的同学的名字,班级名称,课程名称,分数...
这个问题是在csdn上一位朋友写的,但是答案有点复杂,而且查询使用的效率也不是很好,于是自己也写了一个。以下是表结构和数据,
有以下两张表,
Class表
classid classname
1 高三(一)班
2 高三(二)班
3 高三(三)班
Student表
studentid studentName classid
1 张三 2
2 李四 1
3 王五 1
4 赵六 3
5 钱七 2
6 孙九 3
score表
scoreid course studentid score
1 数学 2 99
2 数学 3 60
3 数学 4 80
4 语文 5 79
5 语文 6 58
6 语文 1 66
7 英语 6 76
8 英语 4 87
9 英语 3 100
10 英语 2 69
编写SQL语句查询出每个各科班分数最高的同学的名字,班级名称,课程名称,分数(问题有点绕口)
朋友的答案:
if exists(select count(*) from sysobjects where type='U' and name='#temp')
drop table #temp
select p.studentid,studentname,p.classid,classname,course,score into #temp from
( select studentid,studentname,student.classid,classname
from student right outer join class on student.classid=class.classid) as p
left outer join score on p.studentid=score.studentid
select (select top 1 studentname from #temp where classname=x.classname and course=x.course order by score desc) as '姓名',classname as '班级',course as '课程',max(score) as '分数'
from #temp x group by classname,course order by classname
我自己的答案:
select t.classname,course,max(score) 'score',min(t.studentName) 'studentName' from (select s.studentName,c.classname,r.course,r.score from student s inner join class c on s.classid=c.classid inner join score r on r.studentid=s.studentid ) as t group by classname,course
mysql写出总分最高的学生姓名_编写SQL语句查询出每个各科班分数最高的同学的名字,班级名称,课程名称,分数...相关推荐
- sql查询每科成绩的最高分_编写SQL语句查询出每个各科班分数最高的同学的名字,班级名称,课程名称,分数...
这个问题是在csdn上一位朋友写的,但是答案有点复杂,而且查询使用的效率也不是很好,于是自己也写了一个.以下是表结构和数据, 有以下两张表, Class表 classid classname 1 高三 ...
- 编写SQL语句查询出每个各科班分数最高的同学的名字,班级名称,课程名称,分数...
编写SQL语句查询出每个各科班分数最高的同学的名字,班级名称,课程名称,分数 这个问题是在csdn上一位朋友写的,但是答案有点复杂,而且查询使用的效率也不是很好,于是自己也写了一个.以下是表结构和数据 ...
- mysql2000名称_[转载]编写SQL语句查询出每个各科班分数最高的同学的名字,班级名称,课程名称,分数...
有以下两张表, Class表 classid classname 1 高三(一)班 2 高三(二)班 3 高三(三)班 Student表 studentid studentName classid ...
- 编写SQL语句查询出每个各科班分数最高的同学的名字,班级名称,课程名称,分数
有以下两张表, Class表 classid classname 1 高三(一)班 2 高三(二)班 3 高三(三)班 Student表 studentid studentName classid ...
- 案例:用一条 SQL 语句查询出每门课都大于 80 分的学生姓名
用一条sql语句查询出每门课都大于80分的学生姓名 首先需要进行分析: 要查询出每门课程都大于80分的学生姓名,因为一个学生有多门课程,所以会出现下面三种情况. 第一可能所有课程都大于80分. 第二可 ...
- 用sql语句查询出每门课都大于80 分的学生姓名案例解析
用一条SQL 语句 查询出每门课都大于80 分的学生姓名 name course grade 张三 语文 81 张三 数学 75 李四 语文 76 李四 数学 90 王五 语文 81 王五 数学 10 ...
- select每门可说大于90分_用一条sql语句查询出“每门”课程都大于80分的学生姓名...
展开全部 首先需要进行分析: 要查询出每门课程都大于80分的学生姓名,因为一个学生有多门课程,所以会出62616964757a686964616fe78988e69d8331333366306534现 ...
- 用一条SQL语句查询出每门课程的成绩都大于80的学生姓名
-- 用一条SQL语句查询出每门课程的成绩都大于80的学生姓名.Student表如下: -- name course score -- 张三 语文 81 -- 张三 数学 75 -- 李四 语文 76 ...
- 用一条SQL语句查询出每门课都大于80分的学生姓名
两道sql题: 1.用一条SQL语句查询出每门课都大于80分的学生姓名. 2.删除除了自动编号不同,其他都相同的学生冗余信息. 第一题数据如下: 分析:每门课都大于80分,就是说学生最低分数要大于80 ...
最新文章
- C语言的那些秘密之---函数返回局部变量
- 15道使用频率极高的基础算法题
- 链表中位数(Middle of the Linked List)
- WP7应用开发笔记(8) IP输入框控件
- 并发编程实践之公平有界阻塞队列实现
- dva源码解析(一)
- python第一单元测试,知到Python语言应用第一单元章节测试答案
- 京东金融品牌升级,为用户做精准决策,打造金融机构的“第二增长场景”
- kotlin面向对象实战~
- 下载安装VS Code以及简单的配置使用
- ElasticSearch全文搜索引擎之term和match的区别
- 小米路由器显示DNS服务器设置错误,小米路由器dns异常怎么修复
- 什么是前端工程师?前端工程师需要掌握什么技能?
- 【5G NR】工作频段和信道安排
- Unity 视频编码器问题解决方案(视频卡顿,花屏,黑屏)
- 华为+android+root权限获取root,华为root权限怎么开启怎么获取(简单华为手机ROOT教程)...
- 三十五 我在软件园的那些日子里
- 中型研发组织管理之--选择人
- 电子稳定程序系统--ESP
- Java API--IO流整理