leetcode_178_分數排名

leetcode 178 分數排名

  • 題目
    編寫一個 SQL 查詢來實現分數排名。
    
    如果兩個分數相同,則兩個分數排名(Rank)相同。請注意,平分後的下一個名次應該是下一個連續的整數值。換句話說,名次之間不應該有“間隔”。
    
    +----+-------+
    | Id | Score |
    +----+-------+
    | 1  | 3.50  |
    | 2  | 3.65  |
    | 3  | 4.00  |
    | 4  | 3.85  |
    | 5  | 4.00  |
    | 6  | 3.65  |
    +----+-------+
    例如,根據上述給定的 Scores 表,你的查詢應該返回(按分數從高到低排列):
    
    +-------+------+
    | Score | Rank |
    +-------+------+
    | 4.00  | 1    |
    | 4.00  | 1    |
    | 3.85  | 2    |
    | 3.65  | 3    |
    | 3.65  | 3    |
    | 3.50  | 4    |
    +-------+------+
    
    1. 暴力求解,計算表內比當前值大的去重個數爲排名
      select s1.Score as Score,
      (select count(distinct s2.Score) from Scores as s2 where s2.Score>=s1.Score) as 'Rank'
      from Scores as s1
      order by s1.Score desc;
      
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章