查询每门课程成绩前两名的成绩

mac2025-07-18  3

DROP TABLE IF EXISTS `score`; CREATE TABLE `score` ( `s_id` varchar(20) NOT NULL DEFAULT '', `c_id` varchar(20) NOT NULL DEFAULT '', `s_score` int(3) DEFAULT NULL, PRIMARY KEY (`s_id`,`c_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*Data for the table `score` */ insert into `score`(`s_id`,`c_id`,`s_score`) values ('01','01',80),('01','02',90),('01','03',99),('02','01',70),('02','02',60),('02','03',80),('03','01',80),('03','02',80),('03','03',80),('04','01',50),('04','02',30),('04','03',20),('05','01',76),('05','02',87),('06','01',31),('06','03',34),('07','02',89),('07','03',98); SELECT s1.* FROM score s1 WHERE ( SELECT COUNT(1) FROM score s2 WHERE s1.c_id=s2.c_id AND s2.s_score>=s1.s_score )<=2 ORDER BY s1.c_id,s1.s_score DESC;
最新回复(0)