編寫乙個 sql 查詢來實現分數排名。如果兩個分數相同,則兩個分數排名(rank)相同。請注意,平分後的下乙個名次應該是下乙個連續的整數值。換句話說,名次之間不應該有「間隔」。
+----+-------+例如,根據上述給定的| id | score |
+----+-------+
| 1 | 3.50 |
| 2 | 3.65 |
| 3 | 4.00 |
| 4 | 3.85 |
| 5 | 4.00 |
| 6 | 3.65 |
+----+-------+
scores
表,你的查詢應該返回(按分數從高到低排列):
+-------+------+以這個id為4的舉例,我們需要確定3.85排第幾名,是不是只需要確定分數比3.85高的有幾個人,那麼就可以確定3.85排第幾名。| score | rank |
+-------+------+
| 4.00 | 1 |
| 4.00 | 1 |
| 3.85 | 2 |
| 3.65 | 3 |
| 3.65 | 3 |
| 3.50 | 4 |
+-------+------+
比如說 比3.85 高的有id為3的和id為5,但他們同為4分,所以我們得根據成績去重!
select score,(selectcount(distinct score) from scores s where s.score>s1.score)+
1 rank
from scores as s1 order
by s1.score desc
leetcode178 分數排名
sql架構 編寫乙個 sql 查詢來實現分數排名。如果兩個分數相同,則兩個分數排名 rank 相同。請注意,平分後的下乙個名次應該是下乙個連續的整數值。換句話說,名次之間不應該有 間隔 例如,根據上述給定的 scores 表,你的查詢應該返回 按分數從高到低排列 排序score,找出有多少個scor...
leetcode 178 分數排名
sql架構 create table ifnot exists scores id int score decimal 3 2 truncate table scores insert into scores id,score values 1 3.5 insert into scores id,s...
LeetCode 178 分數排名
題目 編寫乙個 sql 查詢來實現分數排名。如果兩個分數相同,則兩個分數排名 rank 相同。請注意,平分後的下乙個名次應該是下乙個連續的整數值。換句話說,名次之間不應該有 間隔 表 scores id score 1 3.50 2 3.65 3 4.00 4 3.85 5 4.00 6 3.65 ...