在一次面试中被问到手写出一条mysql查询各科成绩的前三名,

首先创建表:

DROP TABLE IF EXISTS `test`;CREATE TABLE `test` (`id` bigint(20) NOT NULL AUTO_INCREMENT,`user_id` bigint(20) DEFAULT NULL,`subject_id` bigint(20) DEFAULT NULL,`score` double(5,2) DEFAULT NULL,PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=utf8mb4;/*Data for the table `test` */insert  into `test`(`id`,`user_id`,`subject_id`,`score`) values (1,1,1,1.00),(2,1,1,2.00),(3,2,1,3.00),(4,3,1,6.00),(5,1,2,3.00),(6,2,2,3.00),(7,3,2,8.00),(8,4,2,10.00);

sql如下:

SELECT a.* FROM test a
LEFT JOIN test b ON a.subject_id=b.subject_id AND a.score<b.score
GROUP BY a.user_id,a.subject_id,a.score HAVING COUNT(b.id)<3
ORDER BY a.subject_id,a.score DESC

感谢大神同事磊哥的提醒帮助;

mysql查询各科成绩的前三名相关推荐

  1. Mysql查询各科成绩前三名并分别排序

    Mysql查询各科成绩前三名并分别排序 这个问题是之前1个朋友学mysql他们老师布置的作业,一开始我没有做过,而且刚出来做开发很多学过的东西都忘记了. 表结构如下: 一开始我是这样写的: selec ...

  2. mysql查询各科成绩前三名的记录,sql查询各科成绩前三名----详述过程,思路清晰不烧脑...

    使用mysql.hive查询各科成绩前三名 一.建表造数据 建表: create table scores( name varchar(100), subject varchar(100), scor ...

  3. mysql查询各科成绩前三名的记录_mysql巧用连表查询各科成绩前三名

    下列是各表的详情,不想自己建表的同学可以直接copy code,数据随意. 创建表成绩详情表: CREATE TABLE score ( id int(10) NOT NULL AUTO_INCREM ...

  4. MySQL 查询学生的总成绩并进行排名_MySQL查询各科成绩前三名的记录及排名(不考虑成绩并列情况)...

    MySQL查询各科成绩前三名的记录及排名(不考虑成绩并列情况) MySQL查询各科成绩前三名的记录及排名(不考虑成绩并列情况) 我的表结构: 先放代码 -- 查询各科成绩前三名的记录(不考虑成绩并列情 ...

  5. mysql统计每个科目平均成绩_No.03 数据库经典面试之如何取出每科成绩的前三名...

    数据库经典面试题之如何取出每科成绩的前三名 实现的原理 代码的实现 总结 一.实现的原理 首先,如果不考虑并列的情况,直接orderby排序后limit3就可以取出前三条.但是如果有多个并列的学科,m ...

  6. mysql查找各科分数相同的学生_mysql中 查询各科成绩都在80以上的学生的姓名

    最近遇到一个关于mysql的查询的问题,就是在成绩表里查询各科成绩都在80以上(含80分)的学生姓名,在网上找了一个例子,供大家参考学习: 1. 2.也有人在网上用了别外的办法来查找,如下: 使用了分 ...

  7. mysql实现分组查询每个班级的前三名

    mysql实现分组查询每个班级的前三名set character_set_server = utf8mb4 ; DROP TABLE IF EXISTS student;CREATE TABLE IF ...

  8. mysql筛选班级排名_mysql实现分组查询每个班级的前三名

    1.创建表 drop table student; create table student( id varchar(20),-- 编号 class varchar(20),-- 年级 score i ...

  9. 练习1-2:编写一个 JAVA 程序,实现输出考试成绩的前三名。

    1. 考试成绩已保存在数组 scores中,数组元素依次为 89 , -23 , 64 , 91 , 119 , 52 , 73 2. 要求通过自定义方法来实现成绩排名并输出操作,将成绩数组作为参数传 ...

  10. 18、查询各科成绩最高分、最低分和平均分,以如下形式显示:课程ID,课程name,最高分,最低分,平均分,及格率,中等率, -- 优良率,优秀率

    -- 18.查询各科成绩最高分.最低分和平均分:以如下形式显示:课程ID,课程name,最高分,最低分,平均分,及格率,中等率, -- 优良率,优秀率 -- 及格为>=60,中等为:70-80, ...

最新文章

  1. 判断frame是否已创建_大白菜的ROS笔记(8)(创建TF广播和监听,内容很多,细节满满)...
  2. android代码获取应用名称,Android获取应用程序名称(ApplicationName)
  3. 计算机导论的重点,计算机导论重点题目精华版
  4. epp是什么意思_有效的个人生产力(EPP)——助力洁绿形成组织发展合力
  5. Linux开发5款实用工具推荐
  6. 这种一毛钱值多少钱?
  7. JFrame真正全屏
  8. 转:CommandArgument 传多个值到另外页面的方法
  9. 最新Javascript 基础知识全总结(持续更新)
  10. node打印彩色文字
  11. Apache CarbonData学习资料汇总
  12. 机器学习——决策树(ID3)的实现
  13. 百度搜索引擎结果网址参数键盘重复速度(rsv_sug3)
  14. 云计算工程师面试题集锦,云计算面试题及答案
  15. Exception in thread main org.hibernate.TransientObjectException: object references an unsaved tran
  16. ElasticSearch License 过期解决办法
  17. 16.WireShark学习-在WireShark中添加新协议
  18. wsappx导致系统崩溃
  19. 【小强推歌】---法文歌曲下载
  20. Java 并发之Concurrent 包综述

热门文章

  1. html5 canvas 虚线,HTML5 canvas画带箭头的虚线
  2. android flutter教程,Android开发 学习Flutter 入门
  3. 转!快速搭建视频直播平台
  4. python实现分层随机抽样算法_python分层随机抽样
  5. 宋代词人前十名都有谁?第一名更是震铄古今最全能的大文豪
  6. 设计模式(博客园精华集)
  7. LDR6028充电OTG直播线直播声卡音频转接器最具性价比方案
  8. Java习题练习:1299 String
  9. matlab 离散求偏导,matlab怎么求离散曲面的偏导数
  10. java图片缩小算法_图片缩小尺寸算法