一句SQL查出所有课程成绩最高和最低的学生及其分数

原创 2016年08月31日 13:20:10

去成都一家游戏公司面试大数据岗,逼格挺高的一家公司偷笑,去了就让做一套题,猝不及防啊。

有一道数据库方面的题是:用一句SQL查出所有课程成绩最高和最低的学生及其分数。


ps:很久没有接触SQL了,当时一脸懵逼啊!咬咬牙开始手写SQL,嗯,我写的SQL有问题,肯定有问题啊,当年学的数据库知识都忘记咯!聊了差不多一个小时的项目,后来面试官顺理成章地很客气地拒绝我了,因为,呃呃,因为我的SQL写得烂,而他们大数据岗对SQL要求挺高的。


好吧,回来再试一试。


表结构:



表数据:


查询结果:


SQL:

SELECT "最高分",student.*
FROM student ,(SELECT MAX(score) AS score,`subject` FROM student GROUP BY `subject`)b
WHERE student.`score` = b.score
AND student.`subject` = b.subject
UNION
SELECT "最低分",student.*
FROM student ,(SELECT MIN(score) AS score,`subject` FROM student GROUP BY `subject`)b
WHERE student.`score` = b.score
AND student.`subject` = b.subject; 

参考:http://www.oschina.net/question/1170042_2184350



版权声明:本文为博主原创文章,未经博主允许不得转载。

sql分组例子:查询某门课是最高成绩的记录

一直没有弄熟悉sql分组的问题,前些天看到一个面试题,把弄出来了,发到这里与大家分享一下。 这里介绍一下分组求最高成绩的学生ID的例子,要使用一句sql语句实现。 本来的题目是求每门课最高成绩的学...
  • wym3587
  • wym3587
  • 2015年03月19日 15:56
  • 11085

sql查询每科成绩最高的人和分数

有成绩表scorestable name subject score 张三 语文 80 李四 数学 70 张三 数学 55 李四 语文 77 张三 英语 88 李四...
  • garo123
  • garo123
  • 2017年10月15日 04:51
  • 1101

sql查询每个班上成绩最高的学生信息

sql查询每个班上成绩最高的学生信息 数据库表和数据准备: if exists (select * from sysobjects where id = OBJECT_ID('[classin...
  • pukuimin1226
  • pukuimin1226
  • 2012年08月24日 15:07
  • 13869

(1)mysql--查询成绩最高和最低的人

简单描述: 成绩表中有学生姓名、学生科目以及学生分数。查询分数最高和分数最低的学生的以及学生的分数。 1、group by,select 选择的列,必须是group by 中的列,或者是函数形式。...
  • lovesummerforever
  • lovesummerforever
  • 2017年12月14日 20:30
  • 291

统计出每门课程各个成绩等级的学生数量

学生成绩表sc(id,sid,cid,score),id是sc表的主键,sid是学生编号,cid是课程号,score是对应的分数。分数在90-100之间的等级是A,在80-90之间的等级是B,在70-...
  • csulfy
  • csulfy
  • 2016年12月06日 10:47
  • 1522

Oracle练习题

一、表结构模型 二、建表和初始化数据脚本 DROP TABLE "TEST"."SCHOOL_STUDENT"; CREATE TABLE "TEST"."SCHOOL_STUDENT" ( "SN...
  • xjmcsdn
  • xjmcsdn
  • 2016年09月24日 22:53
  • 373

超经典SQL练习题,做完这些你的SQL就过关了

SQL 联系题 使用方法:我用的数据库是 Ms SQL Server 2008 ,练习时应当自己建数据,自己先思考,切勿急躁翻答案!否则效果减半,做完这些,恭喜你,你的 SQL 就算过关了。...
  • flycat296
  • flycat296
  • 2017年03月19日 10:19
  • 3830

SQL查询每门课程的前几名

sql server查询每门课程的前两名的学生编号,课程编号,成绩并排序。 在SQL Server 数据库中,有一个表StudentAchievement(学生成绩), 它有三个字段:Stud...
  • wxnjob
  • wxnjob
  • 2015年01月28日 15:42
  • 3488

SQL查询每门课程最高分及人数

--先得到相同学科的最高分数,再查询stud表,找到最高分数的记录 select  course,sudResult,COUNT(course)stuCount  from ( select * f...
  • wym3587
  • wym3587
  • 2015年03月19日 15:52
  • 7520

查询每个学生的各科成绩sql语句

数据库中有三个表 Student , Course, Grade 分别表示 学生, 课程,成绩 表的结构如下: Student( studentId, name, sex) 分别表示: 学号,姓名...
  • Java_WuYY
  • Java_WuYY
  • 2016年03月22日 16:22
  • 1933
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:一句SQL查出所有课程成绩最高和最低的学生及其分数
举报原因:
原因补充:

(最多只允许输入30个字)