每日刷題 分數排名

2021-10-01 11:47:07 字數 1400 閱讀 6722

編寫乙個 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 |

+-------+------+

為什麼我看完一遍資料庫還是不會??

# 架構

#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...