首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >178。等级分数

问178。等级分数
EN

Stack Overflow用户
提问于 2022-06-06 06:47:49
回答 1查看 73关注 0票数 0

我试着用子查询的方法来解决这个问题,我得到了一种我无法理解的行为。

代码语言:javascript
复制
select score,
    (select count(distinct s1.score) from scores s1 
     where s1.score > s2.score)+1 as 'rank' 
from scores s2 
order by s2.score desc;

上面的代码运行非常完美,但是:

查询第3行中的

  • (如果我尝试使用秩而不是“秩”)的leetcode编译器会出现一个错误。在最后一行中,如果我试图按等级排序,则会显示一个错误,而按分数排序则会显示一个错误。

请解释一下为什么会这样。非常感谢你考虑我的要求。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-06-06 06:51:44

从MySQL 8+开始,RANK已成为保留的MySQL关键字。这是由于MySQL 8+引入了一个名为RANK的解析函数。因此,如果您想要使用RANK作为别名,则应该用backticks或双引号转义它:

代码语言:javascript
复制
SELECT score,
    (SELECT COUNT(DISTINCT s1.score) FROM scores s1
     WHERE s1.score > s2.score) + 1 AS `rank`
FROM scores s2
ORDER BY `rank` DESC;
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72513972

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档