1. 程式人生 > >【leetcode】178 分數排名

【leetcode】178 分數排名

描述如下:

實現思路:

實質就是要統計全表小於某一個score數值的個數。如果並列排名的話可以直接:

SELECT a.score,
  (SELECT count(1)
   FROM leetcode_scores
   WHERE score > a.score)+1 AS rank
FROM leetcode_scores a
ORDER BY rank

但是這裡多了一點要求,排名得是連續的整數。所以表裡相同的score值需要先去重

SELECT a.score,
  (SELECT count(DISTINCT score)
   FROM leetcode_scores
   WHERE score > a.score)+1 AS rank
FROM leetcode_scores a
ORDER BY rank

這裡都是降序排列(從高到低排),如果升序就將大於號改小於號。