MySQL取每个班前3名学生信息

本文介绍如何在MySQL中查询每个班级的前三名学生信息,适用于没有并列排名的情况。通过使用GROUP_CONCAT(), SUBSTRING_INDEX(), FIND_IN_SET()等函数,结合分数降序,实现将每个班级的学生按排名聚合并在一行中展示。方法包括先用GROUP_CONCAT()组合每个班级的学生,再用SUBSTRING_INDEX()获取前三名,最后通过FIND_IN_SET()定位具体学生位置。" 65447938,3844201,Matlab图像处理:噪声抑制与逻辑运算,"['图像处理', 'Matlab编程', '数字图像', '噪声处理', '集合运算']

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

只适用于没有并列排名的情况

创建表和数据

DROP TABLE `score0` ;
 
CREATE TABLE `score0` (
`name`  varchar(30) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '姓名' ,
`class`  varchar(30) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '班级' ,
`score`  int(10) NOT NULL COMMENT '分数' ,
PRIMARY KEY (`class`, `name`)
);
 
INSERT INTO score0 
VALUES 
	('张三',"一年级",33),('张四',"一年级",44),('张五',"一年级",74),('张六',"一年级",80),('张七',"一年级",90),('张八',"一年级",100),
	('李三',"二年级",33),('李四',"二年级",44),('李五',"二年级",74),('李六',"二年级",80),('李七',"二年级",90),('李八',"二年级",100),
	('王三',"三年级",33),('王四',"三年级",44),('王五',"三年级",74),('王六',"三年级&#
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值