MySQL 查询最好的前/后3条
MySQL 查询前/后3条
- 1 查询SQL
- 2 学生表
- 3 成绩表
1 查询SQL
select a.`subject`,a.score,s.`name`
from score a
left join student s
on s.id = a.student_id
where (select count(1) from score b where b.`subject` = a.`subject` and a.score < b.score) < 3
order by a.`subject`, a.score desc;
25 化学 95.02 3 伊利丹
5 化学 95.02 1 疾风剑豪
35 化学 78.02 4 阿尔萨斯
44 历史 96.02 5 牛头人
24 历史 90.02 3 伊利丹
4 历史 67.02 1 疾风剑豪
43 外语 88.00 5 牛头人
13 外语 81.00 2 无双剑姬
23 外语 78.00 3 伊利丹
2 数学 78.20 1 疾风剑豪
12 数学 74.20 2 无双剑姬
42 数学 67.20 5 牛头人
11 语文 94.40 2 无双剑姬
31 语文 66.40 4 阿尔萨斯
41 语文 65.40 5 牛头人
2 学生表
/*Navicat Premium Data TransferSource Server : 5 -- 127.0.0.1Source Server Type : MySQLSource Server Version : 80026Source Host : localhost:3306Source Schema : bank_qa_credit_cardTarget Server Type : MySQLTarget Server Version : 80026File Encoding : 65001Date: 14/04/2022 14:05:37
*/SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;-- ----------------------------
-- Table structure for student
-- ----------------------------
DROP TABLE IF EXISTS `student`;
CREATE TABLE `student` (`id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '学生ID',`age` int NULL DEFAULT NULL COMMENT '学生年龄',`name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '学生姓名',PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic;-- ----------------------------
-- Records of student
-- ----------------------------
INSERT INTO `student` VALUES ('1', 12, '疾风剑豪');
INSERT INTO `student` VALUES ('2', 12, '无双剑姬');
INSERT INTO `student` VALUES ('3', 12, '伊利丹');
INSERT INTO `student` VALUES ('4', 12, '阿尔萨斯');
INSERT INTO `student` VALUES ('5', 12, '牛头人');SET FOREIGN_KEY_CHECKS = 1;
3 成绩表
/*Navicat Premium Data TransferSource Server : 5 -- 127.0.0.1Source Server Type : MySQLSource Server Version : 80026Source Host : localhost:3306Source Schema : bank_qa_credit_cardTarget Server Type : MySQLTarget Server Version : 80026File Encoding : 65001Date: 14/04/2022 14:05:27
*/SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;-- ----------------------------
-- Table structure for score
-- ----------------------------
DROP TABLE IF EXISTS `score`;
CREATE TABLE `score` (`id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '成绩ID',`subject` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '考试科目',`score` decimal(5, 2) NULL DEFAULT NULL COMMENT '考试成绩',`student_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '学生ID',PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic;-- ----------------------------
-- Records of score
-- ----------------------------
INSERT INTO `score` VALUES ('1', '语文', 56.40, '1');
INSERT INTO `score` VALUES ('11', '语文', 94.40, '2');
INSERT INTO `score` VALUES ('12', '数学', 74.20, '2');
INSERT INTO `score` VALUES ('13', '外语', 81.00, '2');
INSERT INTO `score` VALUES ('14', '历史', 55.02, '2');
INSERT INTO `score` VALUES ('15', '化学', 65.02, '2');
INSERT INTO `score` VALUES ('2', '数学', 78.20, '1');
INSERT INTO `score` VALUES ('21', '语文', 45.40, '3');
INSERT INTO `score` VALUES ('22', '数学', 11.20, '3');
INSERT INTO `score` VALUES ('23', '外语', 78.00, '3');
INSERT INTO `score` VALUES ('24', '历史', 90.02, '3');
INSERT INTO `score` VALUES ('25', '化学', 95.02, '3');
INSERT INTO `score` VALUES ('3', '外语', 35.00, '1');
INSERT INTO `score` VALUES ('31', '语文', 66.40, '4');
INSERT INTO `score` VALUES ('32', '数学', 43.20, '4');
INSERT INTO `score` VALUES ('33', '外语', 12.00, '4');
INSERT INTO `score` VALUES ('34', '历史', 45.02, '4');
INSERT INTO `score` VALUES ('35', '化学', 78.02, '4');
INSERT INTO `score` VALUES ('4', '历史', 67.02, '1');
INSERT INTO `score` VALUES ('41', '语文', 65.40, '5');
INSERT INTO `score` VALUES ('42', '数学', 67.20, '5');
INSERT INTO `score` VALUES ('43', '外语', 88.00, '5');
INSERT INTO `score` VALUES ('44', '历史', 96.02, '5');
INSERT INTO `score` VALUES ('45', '化学', 43.02, '5');
INSERT INTO `score` VALUES ('5', '化学', 95.02, '1');SET FOREIGN_KEY_CHECKS = 1;
MySQL 查询最好的前/后3条相关推荐
- Mysql查询各科成绩前三名并分别排序
Mysql查询各科成绩前三名并分别排序 这个问题是之前1个朋友学mysql他们老师布置的作业,一开始我没有做过,而且刚出来做开发很多学过的东西都忘记了. 表结构如下: 一开始我是这样写的: selec ...
- mysql查询总成绩的前3名学生信息
mysql查询总成绩的前3名学生信息 mysql 8.0+版本 mysql8.0下 mysql 8.0+版本 使用窗口函数 mysql8.0下 select id,STATUS,@rank1 :=@r ...
- mysql查询各科成绩前三名的记录,sql查询各科成绩前三名----详述过程,思路清晰不烧脑...
使用mysql.hive查询各科成绩前三名 一.建表造数据 建表: create table scores( name varchar(100), subject varchar(100), scor ...
- mysql查询所有分类前三的数据
设计思路 当mysql查询有很多分类时,可能只需要每种分类的前三或者前十的数据,不需要返回所有的结果,所以我们可以给不同种类的数据添加序号,然后通过序号来筛选结果 例:建一张工人工作质量表,用年份和质 ...
- MySQL查询一周前/三个月前/一年前,及昨天、今天、明天、前一个小时和后一个小时的时间
一年前 SELECT DATE_SUB(CURDATE(), INTERVAL 1 YEAR); 三月前 SELECT DATE_SUB(CURDATE(), INTERVAL 3 MONTH); 一 ...
- MySQL查询总积分前十的用户信息和总分
需求 这是前天看见的一个面试题. 在这里有两个表,一个用户表和一个用户积分记录表. 需求分析 目的 找到总积分前10的用户和用户信息 现有条件 用户表和积分记录表,唯一的联系就是会员uid. 需求实现 ...
- mysql查询第10到第20条记录_“取出数据表中第10条到第20条记录”的sql语句+selecttop用法...
1.首先,select top用法: 参考问题 select top n * from和select * from的区别 select * from table -- 取所有数据,返回无序集合 sel ...
- mysql查询各科成绩前三名的记录_mysql巧用连表查询各科成绩前三名
下列是各表的详情,不想自己建表的同学可以直接copy code,数据随意. 创建表成绩详情表: CREATE TABLE score ( id int(10) NOT NULL AUTO_INCREM ...
- mysql 查询一个字段快还是一条记录快_mysql (优化)查询一条再筛选某个字段和直接查询该条的某个字段的效率比较...
查询所有,10000次, $sql = "select * from mh_user where (username='333') and (password='xxx')"; 总 ...
最新文章
- leetcode题解【持续更新】
- html圆角兼容jq,IE兼容css3圆角的htc解决方法
- 【Python】掌握Python中的索引和切片
- Game with modulo
- 《消逝的光芒》为何能成为Steam热销榜常客 ?
- 英伟达显卡bios修改工具_终于可以吃鸡了!英伟达入门级图灵显卡1650S开卖,性能提升25%...
- C#LeetCode刷题之#1-两数之和(Two Sum)
- java 版本EChart使用
- 基于Spring Cloud搭建Zpikin数据链路追踪系统
- maven 下载不到jar包时候,更改阿里源
- 数值分析原理课程实验——四阶龙格-库塔(Runge-Kutta)方法
- python阿拉伯数字转中文_阿拉伯数字转换成中文的python代码
- 详解Transformer中Self-Attention以及Multi-Head Attention
- DeepMind利用AI分析动物行为,可正确识别50种大型物种
- 初级第二旬04—六字准提观试题
- 小白DIY自己的系统镜像
- Java解决一个人赶着鸭子去每个村庄卖,每经过一个村子卖去所赶鸭子的一半又一只。这样他经过了七个村子后还剩两只鸭子,问他出发时共赶多少只鸭子?经过每个村子卖出多少只鸭子?
- 黑客白皮书:如何成为一名黑客(附FAQ)
- seo是什么,干什么用,有什么作用(二)
- 不同范数下的余弦定理_什么是绝对矩阵范数?
热门文章
- 旧金山市交通系统遭勒索软件感染细节进一步公布
- KeyBert、TextRank等九种本文关键词提取算法(KPE)原理及代码实现
- [macOS]_[初级]_[关于程序签名时出现User interaction is not allowed的问题]
- 阿里云oss部署静态网页
- 为期两个月的MATLAB与ROS联合仿真探索总结——因为热爱,所以无所畏惧
- 过扫描和欠扫描的前因后果
- PRML 读书笔记 chapter1 Introduce
- 重磅干货不容错过!2017云栖大会汇总资料,速来领取!
- 数据库事务隔离发展历史
- 天才程序员: 那些年我偷懒没敲的EOS代码, 让我失去了一切, 如果...