mysql


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');

 

你可能感兴趣的:(mysql)