mysql查询结果进行排名

Posted wyf-love-dch

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql查询结果进行排名相关的知识,希望对你有一定的参考价值。

 

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中给查询结果添加序号列

MySQL跨多列排名

在MySQL中实现Rank高级排名函数

MySQL 怎样分组查询

如何在mysql中获取这个特定的用户排名查询?

MySQL复杂查询:连接查询+取某个类型的最大值