leetcode mysql 排名_(LeetCode:数据库)分数排名
編寫一個 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????|
+-------+------+
Solution:
此題的思路是對于每一個分數,找出表中有多少個大于、等于該分數的不同的分數,然后按降序排列即可。SELECT
score,
(????????SELECT????????????COUNT(DISTINCT?score)
FROM
score
WHERE
score?>=?a.score
)?AS?rank
FROM
score?a
ORDER?BY
score?DESC;
作者:lconcise
鏈接:https://www.jianshu.com/p/dc470583e9ff
總結
以上是生活随笔為你收集整理的leetcode mysql 排名_(LeetCode:数据库)分数排名的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 油价高涨 美国石油巨头宁愿高额分红也不增
- 下一篇: 藏在身体里的"不定时炸弹"!血管好不好