select * from ques a
where (select count(*) from ques b where b.class = a.class and b.score > a.score )< 2
CREATE TABLE `ques` (
`id` int(11) NOT NULL auto_increment,
`name` varchar(32) default NULL,
`class` int(11) default NULL,
`score` int(11) default NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- ----------------------------
-- Records
-- ----------------------------
INSERT INTO `ques` VALUES ('1', '张一', '1', '70');
INSERT INTO `ques` VALUES ('2', '张二', '1', '80');
INSERT INTO `ques` VALUES ('3', '张三', '1', '90');
INSERT INTO `ques` VALUES ('4', '王一', '2', '80');
INSERT INTO `ques` VALUES ('5', '王二', '2', '90');
INSERT INTO `ques` VALUES ('6', '王三', '2', '70');