码迷,mamicode.com
首页 > 数据库 > 详细

mysql查询结果进行排名

时间:2019-06-28 16:52:36      阅读:201      评论:0      收藏:0      [点我收藏+]

标签:注意   mysql   obj   class   esc   order   占用   span   user   

 

1.查询表,获得结果,然后进行排名:

SELECT * FROM shopping_activity_Result_log ORDER BY totalRate DESC

结果是:

技术图片

2.进行排序,注意同结果排名相同并且占用名次

SELECT
    * 
FROM
    (
    SELECT
        obj.user_id,
        obj.`day`,
        obj.totalRate,
        obj.exeTime,
    CASE
            
            WHEN @last_score = obj.totalRate THEN
            @rank 
            WHEN @last_score := obj.totalRate THEN
            @rank := @rank + 1 
            WHEN @last_score = 0 OR @last_score IS NULL THEN
          @rank := @rank + 1
        END AS ranking 
    FROM
        ( SELECT * FROM shopping_activity_Result_log ORDER BY totalRate DESC ) obj,
    ( SELECT @rank := 0, @last_score := NULL) r 
    ) a

 

技术图片

  想要的效果就出啦了。

 

mysql查询结果进行排名

标签:注意   mysql   obj   class   esc   order   占用   span   user   

原文地址:https://www.cnblogs.com/wyf-love-dch/p/11103358.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!