mysql 查询获取排名的方法

原创
2017/01/08 20:46
阅读数 729

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

解决方法:

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,从而实现排序

展开阅读全文
加载中

作者的其它热门文章

打赏
0
0 收藏
分享
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部