leetcode mysql 排名_(LeetCode:数据库)分数排名
編寫一個(gè) SQL 查詢來實(shí)現(xiàn)分?jǐn)?shù)排名。如果兩個(gè)分?jǐn)?shù)相同,則兩個(gè)分?jǐn)?shù)排名(Rank)相同。請(qǐng)注意,平分后的下一個(gè)名次應(yīng)該是下一個(gè)連續(xù)的整數(shù)值。換句話說,名次之間不應(yīng)該有“間隔”。+----+-------+|?Id?|?Score?|
+----+-------+
|?1??|?3.50??||?2??|?3.65??|
|?3??|?4.00??||?4??|?3.85??|
|?5??|?4.00??||?6??|?3.65??|
+----+-------+
例如,根據(jù)上述給定的 Scores 表,你的查詢應(yīng)該返回(按分?jǐn)?shù)從高到低排列):+-------+------+|?Score?|?Rank?|
+-------+------+
|?4.00??|?1????||?4.00??|?1????|
|?3.85??|?2????||?3.65??|?3????|
|?3.65??|?3????||?3.50??|?4????|
+-------+------+
Solution:
此題的思路是對(duì)于每一個(gè)分?jǐn)?shù),找出表中有多少個(gè)大于、等于該分?jǐn)?shù)的不同的分?jǐn)?shù),然后按降序排列即可。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
總結(jié)
以上是生活随笔為你收集整理的leetcode mysql 排名_(LeetCode:数据库)分数排名的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 油价高涨 美国石油巨头宁愿高额分红也不增
- 下一篇: 藏在身体里的"不定时炸弹"!血管好不好