Count中的SQL别名

卡登·巴达利安(Kaden Badalian)

我正在尝试学习一些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

对于这个问题,我已经看到了其他答案,这些答案似乎确实很复杂,但是如果有人有简单的方法可以使这个想法生效,我将不胜感激。
谢谢!

戈登·利诺夫

我想你要:

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;

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章