您的位置:首页 > 数据库 > MySQL

mysql 查询获取排名的方法

2017-01-08 20:46 330 查看
需求:获取勤奋指数 登录天数/开通天数

解决方法:

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,从而实现排序
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  MySQL