mysql 查询获取排名的方法

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

解决方法:

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

转载于:https://my.oschina.net/jeeker/blog/820988

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值