SQL查詢對分數進行排名


編寫SQL查詢以對分數進行排名。 如果兩個分數之間存在平局,則兩者應具有相同的排名。 請注意,在平局之后,下一個排名數應該是下一個連續的整數值。 換句話說,等級之間不應該存在“漏洞”。

  1.  
    +----+-------+
  2.  
    | Id | Score |
  3.  
    +----+-------+
  4.  
    | 1 | 3.50 |
  5.  
    | 2 | 3.65 |
  6.  
    | 3 | 4.00 |
  7.  
    | 4 | 3.85 |
  8.  
    | 5 | 4.00 |
  9.  
    | 6 | 3.65 |
  10.  
    +----+-------+

 

例如,給定上面的scores表,您的查詢應生成以下報告(按最高分數排序):

  1.  
    +-------+------+
  2.  
    | Score | Rank |
  3.  
    +-------+------+
  4.  
    | 4.00 | 1 |
  5.  
    | 4.00 | 1 |
  6.  
    | 3.85 | 2 |
  7.  
    | 3.65 | 3 |
  8.  
    | 3.65 | 3 |
  9.  
    | 3.50 | 4 |
  10.  
    +-------+------+

實現sql如下:

select Score, (select count(distinct Score) from scores where Score >= mq.Score) Rank from scores as mq order by Score desc 


免責聲明!

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



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