首页 > 数据库技术 > 详细

sql分组后取每组前三

时间:2021-05-13 20:34:22      阅读:34      评论:0      收藏:0      [点我收藏+]

对数据进行分组,取每组前三条数据

技术分享图片
INSERT INTO `sakila`.`tt` (`id`, `name`, `score`) VALUES (1, 张三, 50);
INSERT INTO `sakila`.`tt` (`id`, `name`, `score`) VALUES (2, 张三, 60);
INSERT INTO `sakila`.`tt` (`id`, `name`, `score`) VALUES (3, 张三, 70);
INSERT INTO `sakila`.`tt` (`id`, `name`, `score`) VALUES (4, 张三, 66);
INSERT INTO `sakila`.`tt` (`id`, `name`, `score`) VALUES (5, 张三, 55);
INSERT INTO `sakila`.`tt` (`id`, `name`, `score`) VALUES (6, 张三, 77);
INSERT INTO `sakila`.`tt` (`id`, `name`, `score`) VALUES (7, 李四, 32);
INSERT INTO `sakila`.`tt` (`id`, `name`, `score`) VALUES (8, 李四, 45);
INSERT INTO `sakila`.`tt` (`id`, `name`, `score`) VALUES (9, 李四, 33);
INSERT INTO `sakila`.`tt` (`id`, `name`, `score`) VALUES (10, 李四, 28);
INSERT INTO `sakila`.`tt` (`id`, `name`, `score`) VALUES (11, 李四, 60);
INSERT INTO `sakila`.`tt` (`id`, `name`, `score`) VALUES (12, 李四, 55);
INSERT INTO `sakila`.`tt` (`id`, `name`, `score`) VALUES (13, 王五, 99);
INSERT INTO `sakila`.`tt` (`id`, `name`, `score`) VALUES (14, 王五, 107);
INSERT INTO `sakila`.`tt` (`id`, `name`, `score`) VALUES (15, 王五, 88);
INSERT INTO `sakila`.`tt` (`id`, `name`, `score`) VALUES (16, 王五, 65);
INSERT INTO `sakila`.`tt` (`id`, `name`, `score`) VALUES (17, 王五, 72);
INSERT INTO `sakila`.`tt` (`id`, `name`, `score`) VALUES (18, 王五, 126);
inster

数据如下

技术分享图片

 

 题目:分组取每人最好成绩的前三条

select * from tt as t1 where (select count(*) from tt where name=t1.name and score>=t1.score)<=3 ORDER BY score desc 

题目:取每人最好成绩,按最好成绩排名;取每人最平均成绩,按照平均成绩倒叙排名

sql分组后取每组前三

原文:https://www.cnblogs.com/zeran/p/14764074.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!