Mysql统计排名

MYSQL实现统计排名建表预计


CREATE TABLE `players` (
  `pid` int(2) NOT NULL,
  `name` varchar(50) DEFAULT NULL,
  `age` int(2) DEFAULT NULL,
  `money` int(10) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

插入数据

INSERT INTO `test`.`players` (`pid`, `name`, `age`, `money`) VALUES ('1', 'Samual', '25', '100');
INSERT INTO `test`.`players` (`pid`, `name`, `age`, `money`) VALUES ('2', 'Vino', '20', '100');
INSERT INTO `test`.`players` (`pid`, `name`, `age`, `money`) VALUES ('3', 'John', '20', '100');
INSERT INTO `test`.`players` (`pid`, `name`, `age`, `money`) VALUES ('4', 'Andy', '22', '100');
INSERT INTO `test`.`players` (`pid`, `name`, `age`, `money`) VALUES ('5', 'Brian', '21', '100');
INSERT INTO `test`.`players` (`pid`, `name`, `age`, `money`) VALUES ('6', 'Dew', '24', '100');
INSERT INTO `test`.`players` (`pid`, `name`, `age`, `money`) VALUES ('7', 'Kris', '25', '100');
INSERT INTO `test`.`players` (`pid`, `name`, `age`, `money`) VALUES ('8', 'William', '26', '100');
INSERT INTO `test`.`players` (`pid`, `name`, `age`, `money`) VALUES ('9', 'George', '23', '100');
INSERT INTO `test`.`players` (`pid`, `name`, `age`, `money`) VALUES ('10', 'Peter', '19', '100');
INSERT INTO `test`.`players` (`pid`, `name`, `age`, `money`) VALUES ('11', 'Tom', '20', '100');
INSERT INTO `test`.`players` (`pid`, `name`, `age`, `money`) VALUES ('12', 'Andre', '20', '100');
INSERT INTO `test`.`players` (`pid`, `name`, `age`, `money`) VALUES ('1', 'Samual', '25', '100');
INSERT INTO `test`.`players` (`pid`, `name`, `age`, `money`) VALUES ('2', 'Vino', '20', '200');
INSERT INTO `test`.`players` (`pid`, `name`, `age`, `money`) VALUES ('3', 'John', '20', '300');
INSERT INTO `test`.`players` (`pid`, `name`, `age`, `money`) VALUES ('4', 'Andy', '22', '400');

按照money 的总金额进行排名

 select t.* ,
case when @preRank = totalmoney then @curRank 
when  @preRank := totalmoney then @curRank := @curRank+1
end as rank
 from (
SELECT  name, sum(money)  as totalmoney
FROM players GROUP BY  name) t,(select @curRank :=0,@preRank:=0)r
ORDER BY totalmoney desc 



猜你喜欢

转载自blog.csdn.net/anaitudou/article/details/80505707