mysql根据字段分组,另外字段排序生成排名
表结构
CREATE TABLE `rank_test` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`class` int(255) DEFAULT NULL,
`score` int(255) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=utf8;
mysql8.0以及上,可以直接通过函数实现
相同数据对于排名的影响
rank() over() :1,2,2,4
dense_rank() over():1,2,2,3
row_number() over():1,2,3,4
mysql8.0以下,sql实现,函数不可用
rank() over()
#rank() over()
#sql实现
#思路:定义四个变量@class,@score,@colum,@rank
#首先对班级进行判断,相等的情况再判断分数,