LeetCode資料庫 178 分數排名

2021-08-27 08:41:54 字數 921 閱讀 4760

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

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

我的思路是查詢與當前分數相比大於等於的個數就等於分數的排名,group by id 是為了顯示全部的分數

select a.score "score",count(distinct(b.score)) "rank"

from

scores a, scores b

where b.score>=a.score

group

by a.id

order

by a.score desc

leetcode 資料庫 178 分數排名

題目 編寫乙個 sql 查詢來實現分數排名。如果兩個分數相同,則兩個分數排名 rank 相同。請注意,平分後的下乙個名次應該是下乙個連續的整數值。換句話說,名次之間不應該有 間隔 id score 1 3.50 2 3.65 3 4.00 4 3.85 5 4.00 6 3.65 例如,根據上述給定...

LeetCode 資料庫178 分數排名

題目描述在鏈結 leetcode 178.分數排名 由題目描述我們可以得知需要求出兩部分內容 1.經過從大到小排序的分數score 2.排序後score對應的名次rank,若score相等,則屬於並列,名次相同 第一部分 顯示排序分數 這一部分較簡單,使用select from where搜尋語句,...

資料庫專題 leetcode178 分數排名

編寫乙個 sql 查詢來實現分數排名。如果兩個分數相同,則兩個分數排名 rank 相同。請注意,平分後的下乙個名次應該是下乙個連續的整數值。換句話說,名次之間不應該有 間隔 id score 1 3.50 2 3.65 3 4.00 4 3.85 5 4.00 6 3.65 例如,根據上述給定的 s...