mysql 查询获取排名的方法

2017-01-09 14:09:02来源:oschina作者:kongjun人点击

需求:获取勤奋指数 登录天数/开通天数


解决方法:


select * from (
select scores.score,@rank:=@rank+1 as rank,scores.user_id from (SELECT
ifnull(round(login_days/datediff('2016-12-31',open_date)*10),0) as score,user_id
FROM
`dms_annual_account` having score > 0
ORDER BY
score desc) scores,(SELECT @rank:=0) idTemp) total;

相当于给每个记录增加了 一个id,这个id是根据最后得分进行降序,这样排名就出来了;


rank 变量:有点类似循环里面的自增一样,设置一个变量并赋予初始值,循环一次自增加1,从而实现排序

最新文章

123

最新摄影

微信扫一扫

第七城市微信公众平台