SQL 成绩排名

CREATE TABLE `user_score` (
  `id` int(10) NOT NULL AUTO_INCREMENT,
  `name` varchar(20) DEFAULT NULL,
  `score` int(3) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8;

INSERT INTO `user_score` VALUES ('1', 'zhangshuling', '100');
INSERT INTO `user_score` VALUES ('2', 'ganhefang', '71');
INSERT INTO `user_score` VALUES ('3', 'zhangchunzhi', '60');
INSERT INTO `user_score` VALUES ('4', 'huangwei', '59');
INSERT INTO `user_score` VALUES ('5', 'gandan', '71');
INSERT INTO `user_score` VALUES ('6', 'ganyongqiang', '86');


排序语句
SELECT t1.*,t2.taxis FROM 
(SELECT us.id,COUNT(_us.id)+1 taxis FROM user_score us LEFT JOIN user_score _us ON us.score<_us.score GROUP BY us.id) t2 INNER JOIN user_score t1 ON t1.id = t2.id
ORDER BY t2.taxis ASC

效果如下:

猜你喜欢

转载自java-zhangshuling.iteye.com/blog/1880924