================================

©Copyright 蕃薯耀 2021-06-09

https://blog.csdn.net/w995223851

一、取出各科成绩前三的学生

#取出各科成绩前三的学生CREATE TABLE stu_score(id INT PRIMARY KEY AUTO_INCREMENT,stu_id INT,stu_name VARCHAR(50),clazz VARCHAR(20),score DOUBLE,remark VARCHAR(50)
);INSERT INTO stu_score(stu_id,stu_name,clazz,score) VALUES (1, '小赵', '语文', 80);
INSERT INTO stu_score(stu_id,stu_name,clazz,score) VALUES (1, '小赵', '数学', 85);
INSERT INTO stu_score(stu_id,stu_name,clazz,score) VALUES (1, '小赵', '英语', 90);
INSERT INTO stu_score(stu_id,stu_name,clazz,score) VALUES (1, '小赵', '化学', 90);INSERT INTO stu_score(stu_id,stu_name,clazz,score) VALUES (2, '小钱', '语文', 88);
INSERT INTO stu_score(stu_id,stu_name,clazz,score) VALUES (2, '小钱', '数学', 88);
INSERT INTO stu_score(stu_id,stu_name,clazz,score) VALUES (2, '小钱', '英语', 98);
INSERT INTO stu_score(stu_id,stu_name,clazz,score) VALUES (2, '小钱', '化学', 92);INSERT INTO stu_score(stu_id,stu_name,clazz,score) VALUES (3, '小孙', '语文', 70);
INSERT INTO stu_score(stu_id,stu_name,clazz,score) VALUES (3, '小孙', '数学', 78);
INSERT INTO stu_score(stu_id,stu_name,clazz,score) VALUES (3, '小孙', '英语', 96);
INSERT INTO stu_score(stu_id,stu_name,clazz,score) VALUES (3, '小孙', '化学', 95);INSERT INTO stu_score(stu_id,stu_name,clazz,score) VALUES (4, '小李', '语文', 85);
INSERT INTO stu_score(stu_id,stu_name,clazz,score) VALUES (4, '小李', '数学', 98);
INSERT INTO stu_score(stu_id,stu_name,clazz,score) VALUES (4, '小李', '英语', 88);
INSERT INTO stu_score(stu_id,stu_name,clazz,score) VALUES (4, '小李', '化学', 98);INSERT INTO stu_score(stu_id,stu_name,clazz,score) VALUES (5, '小王', '语文', 90);
INSERT INTO stu_score(stu_id,stu_name,clazz,score) VALUES (5, '小王', '数学', 80);
INSERT INTO stu_score(stu_id,stu_name,clazz,score) VALUES (5, '小王', '英语', 85);
INSERT INTO stu_score(stu_id,stu_name,clazz,score) VALUES (5, '小王', '化学', 78);INSERT INTO stu_score(stu_id,stu_name,clazz,score) VALUES (6, '小陈', '语文', 87);
INSERT INTO stu_score(stu_id,stu_name,clazz,score) VALUES (6, '小陈', '数学', 97);
INSERT INTO stu_score(stu_id,stu_name,clazz,score) VALUES (6, '小陈', '英语', 84);
INSERT INTO stu_score(stu_id,stu_name,clazz,score) VALUES (6, '小陈', '化学', 80);INSERT INTO stu_score(stu_id,stu_name,clazz,score) VALUES (7, '小朱', '语文', 80);
INSERT INTO stu_score(stu_id,stu_name,clazz,score) VALUES (7, '小朱', '数学', 88);#和小钱88分一样,并列第三
INSERT INTO stu_score(stu_id,stu_name,clazz,score) VALUES (7, '小朱', '英语', 98);#并列第一
INSERT INTO stu_score(stu_id,stu_name,clazz,score) VALUES (7, '小朱', '化学', 95);#并列批二SELECT * FROM stu_score ss ORDER BY ss.`clazz`,ss.`score` DESC;#取出各科成绩前三的学生
#1、取出一名学生A某个学科的成绩
#2、然后和所有的学生同一个学科的成绩比较
#3、当存在该学科的成绩比学生A的成绩大且总人数不大于3,或者该学科成绩没有大于学生A的,则表示学生A的成绩在前三
#4、然后根据学科、分数(降序)排序取出
SELECT * FROM stu_score ss1
WHERE (SELECT COUNT(*) FROM stu_score ss2 WHERE ss2.`clazz`=ss1.`clazz` AND ss2.`score` > ss1.`score`
) < 3
ORDER BY ss1.`clazz`,ss1.`score` DESC;

最后的查询结果:

id      stu_id  stu_name  clazz      score    remark
------  ------  --------  ------     ------   --------16       4  小李        化学          98  (NULL)  12       3  小孙        化学          95  (NULL)  28       7  小朱        化学          95  (NULL)  14       4  小李        数学          98  (NULL)  22       6  小陈        数学          97  (NULL)  6       2  小钱        数学          88  (NULL)  26       7  小朱        数学          88  (NULL)  7       2  小钱        英语          98  (NULL)  27       7  小朱        英语          98  (NULL)  11       3  小孙        英语          96  (NULL)  17       5  小王        语文          90  (NULL)  5       2  小钱        语文          88  (NULL)  21       6  小陈        语文          87  (NULL)

截图:

二、取出各科成绩都不小于85分的学生

#取出各科成绩都不小于85分的学生
#如果一个学生所有学科的分数中,最小的都>=85,则表示该学生每科成绩都不小于85
SELECT stu_name,MIN(score) FROM stu_score
GROUP BY stu_name HAVING MIN(score) >=85
ORDER BY MIN(score) DESC;

查询结果:

stu_name  MIN(score)
--------  ------------
小钱                88
小李                85

(时间宝贵,分享不易,捐赠回馈,^_^)

================================

©Copyright 蕃薯耀 2021-06-09

https://blog.csdn.net/w995223851

Sql取出各科分数前三名的学生,Sql各科成绩前三的学生相关推荐

  1. L1-030 一帮一 (15分) “一帮一学习小组”是中小学中常见的学习组织方式,老师把学习成绩靠前的学生跟学习成绩靠后的学生排在一组。本题就请你编写程序帮助老师自动完成这个分配工作,即在得到全班学生

    L1-030 一帮一 (15分) "一帮一学习小组"是中小学中常见的学习组织方式,老师把学习成绩靠前的学生跟学习成绩靠后的学生排在一组.本题就请你编写程序帮助老师自动完成这个分配工 ...

  2. “一帮一学习小组”是中小学中常见的学习组织方式,老师把学习成绩靠前的学生跟学习成绩靠后的学生排在一组。本题就请你编写程序帮助老师自动完成这个分配工作,即在得到全班学生的排名后,在当前尚未分组的学生中,

    "一帮一学习小组"是中小学中常见的学习组织方式,老师把学习成绩靠前的学生跟学习成绩靠后的学生排在一组.本题就请你编写程序帮助老师自动完成这个分配工作,即在得到全班学生的排名后,在当 ...

  3. L1-030——一帮一学习小组”是中小学中常见的学习组织方式,老师把学习成绩靠前的学生跟学习成绩靠后的学生排在一组。

    一帮一学习小组"是中小学中常见的学习组织方式,老师把学习成绩靠前的学生跟学习成绩靠后的学生排在一组.本题就请你编写程序帮助老师自动完成这个分配工作,即在得到全班学生的排名后,在当前尚未分组的 ...

  4. “一帮一学习小组”是中小学中常见的学习组织方式,老师把学习成绩靠前的学生跟学习成绩靠后的学生排在一组.

    "一帮一学习小组"是中小学中常见的学习组织方式,老师把学习成绩靠前的学生跟学习成绩靠后的学生排在一组.本题就请你编写程序帮助老师自动完成这个分配工作,即在得到全班学生的排名后,在当 ...

  5. 《JAVA练习题目2》 输入十个学生的考试成绩,将及格学生的成绩从高到低排序输出。

    题目内容: 输入十个学生的考试成绩,将及格学生的成绩从高到低排序输出. 输入格式: 10个学生的成绩,以空格分割. 输出格式: 及格成绩从高到低,成绩之间用空格分隔,最后一个分数后面也有一个空格.如果 ...

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

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

  7. 三年级学生计算机学情分析,三年级学生学情分析

    路口的转折点 三年,三年,又三年,人生有多少个三年可以轻松呢?有的就是生命在浪费,说一句真心话:你现在和废物没什么差别.当清晨第一 三年,三年,又三年,人生有多少个三年可以轻松呢?有的就是生命在浪费, ...

  8. c语言成绩管理系统完整vc6,学生成绩管理系统源代码

    <学生成绩管理系统源代码>由会员分享,可在线阅读,更多相关<学生成绩管理系统源代码(25页珍藏版)>请在人人文库网上搜索. 1.一.课程设计(论文)题目学生成绩管理系统二.本次 ...

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

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

  10. mysql查询分数前三个_MySql根据总成绩查询前三名学生的每科成绩分数

    MySql根据总成绩查询前三名学生的每科成绩分数 1年前 阅读 2765 评论 0 喜欢 0 ## 一.数据库结构: ```sql CREATE TABLE `chengji` ( `uid` int ...

最新文章

  1. Mysql-cobar集群安装部署手册
  2. python读取文件特定内容_python读取指定内存的内容
  3. android viewgroup 事件,android中viewgroup的事件传递分析
  4. linux删除libc.so.6
  5. 问答专场 | 我是高级商业产品总监吴波,你有什么想问的?
  6. ThinkPHP跨控制器调用方法
  7. 一个祸害我很久的东东——事件过滤器之按键触发
  8. Linux下mysql设置密码
  9. php禁止代理ip访问_php禁止某ip或ip地址段访问的方法(转载)
  10. javascript学习之闭包
  11. 【POJ】1276 Cash Machine 【背包问题】
  12. PAIP.通过公共网络传递秘密信息.txt (包括语音和文字)
  13. java面试之简述一下 Java 垃圾回收机制?
  14. 8000401a 因为配置标识不正确,系统无法开始服务器进程。请检查用户名和密码。
  15. Quartz 定时任务时间表达式说明
  16. cad插件加载bplot成功用不了_教大家Batchplot使用常见问题的解决办法
  17. Android 分贝测试仪功能,挥泪整理面经
  18. ECharts 饼图颜色设置教程 - 4 种方式设置饼图颜色
  19. html5画图程序,基于HTML5的Windows画图程序
  20. 如何判断一个点在矩形或多边形内

热门文章

  1. ip domain-lookup命令解释
  2. c语言 字母常量,C语言常量的类型
  3. 阿里云centos服务器安装图形化桌面并启动
  4. uniapp 地址转换经纬度
  5. cubic 插值和 bicubic,pytorch, opencv和matlab的实现差异
  6. 45个纯 CSS 实现的精美边框效果【附源码】
  7. vant 带关闭按钮div_[已解决]vant-ui源码vant-button的几个疑问
  8. 面试题:Redis 40 道
  9. 掩码位数原理、掩码位数计算方法、VLSM详解(IP地址划分方法)、CIDR详解
  10. 基本知识 100190