这个问题是在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语句查询出每个各科班分数最高的同学的名字,班级名称,课程名称,分数...相关推荐

  1. sql查询每科成绩的最高分_编写SQL语句查询出每个各科班分数最高的同学的名字,班级名称,课程名称,分数...

    这个问题是在csdn上一位朋友写的,但是答案有点复杂,而且查询使用的效率也不是很好,于是自己也写了一个.以下是表结构和数据, 有以下两张表, Class表 classid classname 1 高三 ...

  2. 编写SQL语句查询出每个各科班分数最高的同学的名字,班级名称,课程名称,分数...

    编写SQL语句查询出每个各科班分数最高的同学的名字,班级名称,课程名称,分数 这个问题是在csdn上一位朋友写的,但是答案有点复杂,而且查询使用的效率也不是很好,于是自己也写了一个.以下是表结构和数据 ...

  3. mysql2000名称_[转载]编写SQL语句查询出每个各科班分数最高的同学的名字,班级名称,课程名称,分数...

    有以下两张表, Class表 classid classname 1 高三(一)班 2 高三(二)班 3 高三(三)班 Student表 studentid   studentName classid ...

  4. 编写SQL语句查询出每个各科班分数最高的同学的名字,班级名称,课程名称,分数

    有以下两张表, Class表 classid classname 1 高三(一)班 2 高三(二)班 3 高三(三)班 Student表 studentid   studentName classid ...

  5. 案例:用一条 SQL 语句查询出每门课都大于 80 分的学生姓名

    用一条sql语句查询出每门课都大于80分的学生姓名 首先需要进行分析: 要查询出每门课程都大于80分的学生姓名,因为一个学生有多门课程,所以会出现下面三种情况. 第一可能所有课程都大于80分. 第二可 ...

  6. 用sql语句查询出每门课都大于80 分的学生姓名案例解析

    用一条SQL 语句 查询出每门课都大于80 分的学生姓名 name course grade 张三 语文 81 张三 数学 75 李四 语文 76 李四 数学 90 王五 语文 81 王五 数学 10 ...

  7. select每门可说大于90分_用一条sql语句查询出“每门”课程都大于80分的学生姓名...

    展开全部 首先需要进行分析: 要查询出每门课程都大于80分的学生姓名,因为一个学生有多门课程,所以会出62616964757a686964616fe78988e69d8331333366306534现 ...

  8. 用一条SQL语句查询出每门课程的成绩都大于80的学生姓名

    -- 用一条SQL语句查询出每门课程的成绩都大于80的学生姓名.Student表如下: -- name course score -- 张三 语文 81 -- 张三 数学 75 -- 李四 语文 76 ...

  9. 用一条SQL语句查询出每门课都大于80分的学生姓名

    两道sql题: 1.用一条SQL语句查询出每门课都大于80分的学生姓名. 2.删除除了自动编号不同,其他都相同的学生冗余信息. 第一题数据如下: 分析:每门课都大于80分,就是说学生最低分数要大于80 ...

最新文章

  1. C语言的那些秘密之---函数返回局部变量
  2. 15道使用频率极高的基础算法题
  3. 链表中位数(Middle of the Linked List)
  4. WP7应用开发笔记(8) IP输入框控件
  5. 并发编程实践之公平有界阻塞队列实现
  6. dva源码解析(一)
  7. python第一单元测试,知到Python语言应用第一单元章节测试答案
  8. 京东金融品牌升级,为用户做精准决策,打造金融机构的“第二增长场景”
  9. kotlin面向对象实战~
  10. 下载安装VS Code以及简单的配置使用
  11. ElasticSearch全文搜索引擎之term和match的区别
  12. 小米路由器显示DNS服务器设置错误,小米路由器dns异常怎么修复
  13. 什么是前端工程师?前端工程师需要掌握什么技能?
  14. 【5G NR】工作频段和信道安排
  15. Unity 视频编码器问题解决方案(视频卡顿,花屏,黑屏)
  16. 华为+android+root权限获取root,华为root权限怎么开启怎么获取(简单华为手机ROOT教程)...
  17. 三十五 我在软件园的那些日子里
  18. 中型研发组织管理之--选择人
  19. 电子稳定程序系统--ESP
  20. Java API--IO流整理

热门文章

  1. excel生成动态进度条
  2. 分享一下PPT常规使用方法和技巧
  3. jQuery-源码阅读,JavaScript原生继承方式与jQuery中的继承
  4. 罗技M590优联无法使用的问题解决
  5. 程序员在外包公司工作怎么样?
  6. 嵌入式计算机 硬盘录像机,嵌入式数字硬盘录像机安装步骤 硬盘安装及使用注意事项【详细介绍】...
  7. namedtuple 具名元组详解
  8. 矩阵快速幂 NOY 301
  9. 剑指Offer66题之每日6题 - 第六天
  10. 思科ccie和华为hcie中交换机环路的产生原因和解决方法