需求:获取勤奋指数 登录天数/开通天数
解决方法:
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,从而实现排序