編寫乙個 sql 查詢來實現分數排名。如果兩個分數相同,則兩個分數排名(rank)相同。請注意,平分後的下乙個名次應該是下乙個連續的整數值。換句話說,名次之間不應該有「間隔」。
為什麼我看完一遍資料庫還是不會??例如,根據上述給定的 scores 表,你的查詢應該返回(按分數從高到低排列):+----+-------+
| id | score |
+----+-------+
| 1 | 3.50 |
| 2 | 3.65 |
| 3 | 4.00 |
| 4 | 3.85 |
| 5 | 4.00 |
| 6 | 3.65 |
+----+-------+
+-------+------+
| score | rank |
+-------+------+
| 4.00 | 1 |
| 4.00 | 1 |
| 3.85 | 2 |
| 3.65 | 3 |
| 3.65 | 3 |
| 3.50 | 4 |
+-------+------+
# 架構
#create table if not exists scores (id int, score decimal(3,2))
#truncate table scores
#insert into scores (id, score) values ('1', '3.5')
#insert into scores (id, score) values ('2', '3.65')
#insert into scores (id, score) values ('3', '4.0')
#insert into scores (id, score) values ('4', '3.85')
#insert into scores (id, score) values ('5', '4.0')
#insert into scores (id, score) values ('6', '3.65')
select a.score as score,
(select
count
(distinct b.score)
from scores b
where b.score >= a.score
)as rank
from scores a
order
by a.score desc
;
每日刷題 分數到小數
給定兩個整數,分別表示分數的分子 numerator 和分母 denominator,以字串形式返回小數。如果小數部分為迴圈小數,則將迴圈的部分括在括號內。示例 例 1 輸入 numerator 1,denominator 2 輸出 0.5 例 2 輸入 numerator 2,denominato...
分數排名 mysql mysql 分數排名
編寫乙個 sql 查詢來實現分數排名。如果兩個分數相同,則兩個分數排名 rank 相同。請注意,平分後的下乙個名次應該是下乙個連續的整數值。換句話說,名次之間不應該有 間隔 id score 1 3.50 2 3.65 3 4.00 4 3.85 5 4.00 6 3.65 例如,根據上述給定的 s...
分數排名 mysql MYSQL分數排名
編寫乙個 sql 查詢來實現分數排名。如果兩個分數相同,則兩個分數排名 rank 相同。請注意,平分後的下乙個名次應該是下乙個連續的整數值。換句話說,名次之間不應該有 間隔 id score 1 3.50 2 3.65 3 4.00 4 3.85 5 4.00 6 3.65 例如,根據上述給定的 s...