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;
相关推荐
Liu628886 分钟前
Web开发与API
jvm·数据库·python
m0_743470379 分钟前
Python字典与集合:高效数据管理的艺术
jvm·数据库·python
2501_945423549 分钟前
使用Scrapy框架构建分布式爬虫
jvm·数据库·python
yhole11 分钟前
MySQL无法连接到本地localhost的解决办法2024.11.8
数据库·mysql·adb
2401_8512729913 分钟前
使用Python进行量化交易入门
jvm·数据库·python
jinanmichael17 分钟前
mysql用户名怎么看
数据库·mysql
李少兄24 分钟前
企业资源计划(ERP)系统全景指南
java·前端·数据库·erp
marsh020630 分钟前
17 openclaw数据库连接池配置:避免性能瓶颈的关键
数据库·ai·oracle·编程·技术
2301_818419011 小时前
Python内存管理机制:垃圾回收与引用计数
jvm·数据库·python