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

 

  想要的效果就出啦了。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM