本文主要是介绍mysql实现分组查询每个班级的前三名,并新增排名列 -- 034,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
♣题目部分 mysql实现分组查询每个班级的前三名并新增排名列? ♣答案部分
drop TABLE `student` ;
-- 创建表
drop table student;
create table student(id varchar(20),-- 编号class varchar(20),-- 年级score int-- 分数
);-- 创建测试数据
delete from student;
insert student values('1','一年级',82);
insert student values('2','一年级',95);
insert student values('3','一年级',82);
insert student values('4','一年级',40);
insert student values('5','一年级',20);
insert student values('6','二年级',95);
insert student values('7','二年级',40);
insert student values('8','二年级',3);
insert student values('9','二年级',60);
insert student values('10','二年级',10);
insert student values('11','三年级',70);
insert student values('12','三年级',60);
insert student values('13','三年级',40);
insert student values('14','三年级',90);
insert student values('15','三年级',20);查询每个班级的前三名并新增排名列USE xxtdb;
select id,class,score,`rank`
from
( SELECT id,class,score, row_number() over (PARTITION BY class ORDER BY score desc) AS `rank` FROM student ) t
WHEREt.rank <= 3
order by t.`rank`;
About Me:小婷儿
● 本文作者:小婷儿,专注于python、数据分析、数据挖掘、机器学习相关技术,也注重技术的运用
● 作者博客地址:https://blog.csdn.net/u010986753
● 本系列题目来源于作者的学习笔记,部分整理自网络,若有侵权或不当之处还请谅解
● 版权所有,欢迎分享本文,转载请保留出处
● 微信:tinghai87605025 联系我加微信群
● QQ:87605025
● QQ交流群py_data :483766429
● 公众号:python宝 或 DB宝
● 提供OCP、OCM和高可用最实用的技能培训
● 题目解答若有不当之处,还望各位朋友批评指正,共同进步
如果你觉得到文章对您有帮助,点击下方我的头像,赞赏我哦!
有您的支持,小婷儿一定会越来越好!
这篇关于mysql实现分组查询每个班级的前三名,并新增排名列 -- 034的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!