2025年--Lc172--H178 .分数排名(SQL)--Java版

1.题目


2.思路

(1)将 Scores 表与自身连接,以便我们得到所有分数大于或等于此分数的所有行。

(2)将查询行按 id 和 score 值进行分组。

(3)计算唯一的分数的数量,它应该大于或等于连接条件中使用的分数(也就是排名)。

(4)按 score 值对结果集进行排序。

补充

COUNT(DISTINCT T.score):对当前分组下(由外层表 S 的每个分数确定)的连接结果里,统计 不重复的分数个数。DISTINCT 的意思是:去重。在 SQL 里用来把重复的值或重复的整行只保留一份。

AS 'rank':把这一统计结果的列名起别名叫 rank(在 MySQL 里用单引号也能起别名,更推荐写成 AS rank 或 AS rank )。

3.代码实现

sql 复制代码
select 
S.score ,
Count(DISTINCT T.score) AS 'rank'
from
Scores S
INNER JOIN Scores T on S.score<=T.score
GROUP BY
S.id,
S.score
Order By
S.score Desc;
相关推荐
e***09637 分钟前
SQL 中UPDATE 和 DELETE 语句的深入理解与应用
数据库·sql
w***4242 小时前
SQL-Server链接服务器访问Oracle数据
服务器·sql·oracle
程序员小白条2 小时前
你面试时吹过最大的牛是什么?
java·开发语言·数据库·阿里云·面试·职场和发展·毕设
老华带你飞2 小时前
社区养老保障|智慧养老|基于springboot+小程序社区养老保障系统设计与实现(源码+数据库+文档)
java·数据库·vue.js·spring boot·小程序·毕设·社区养老保障
Coding_Doggy2 小时前
链盾shieldchiain | 团队功能、邀请成员、权限修改、移除成员、SpringSecurity、RBAC权限控制
java·开发语言·数据库
凯子坚持 c2 小时前
不用复杂配置!本地 Chat2DB 秒变远程可用,跨网操作数据库就这么简单
数据库
q***65692 小时前
Windows环境下安装Redis并设置Redis开机自启
数据库·windows·redis
q***96582 小时前
Windows版Redis本地后台启动
数据库·windows·redis
q***81642 小时前
【Redis】centos7 systemctl 启动 Redis 失败
数据库·redis·缓存