我正在尝试学习一些SQL,我觉得我应该能够做到这一点,但是我得到了一个语法错误。
SELECT Score,
(SELECT COUNT(DISTINCT Score s) FROM Scores WHERE s >= Score) AS Rank
FROM Scores
ORDER BY Score DESC它允许我去做
# Write your MySQL query statement below
SELECT Score s,
(SELECT COUNT(DISTINCT Score) FROM Scores WHERE Score >= s) AS Rank
FROM Scores
ORDER BY Score DESC但对于这个问题,第一列必须命名为Score。
对于这个问题,我看到了其他的答案,看起来很复杂,但是如果有人有一个简单的方法让这个想法奏效,我会很感激的。
谢谢!
发布于 2020-03-17 16:21:36
我想你想:
SELECT s.Score,
(SELECT COUNT(DISTINCT s2.Score) FROM Scores s2 WHERE s2.Score >= s.Score) AS Rank
FROM Scores s
ORDER BY s.Score DESC;请注意,我为表引用和所有列引用都别名。
当然,这更简单:
select s.score,
dense_rank() over (order by s.score desc) as rank
from scores s
order by s.score desc;https://stackoverflow.com/questions/60725979
复制相似问题