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;
相关推荐
凌虚11 小时前
面向 MySQL 用户的 PostgreSQL 快速上手指南
数据库·后端·架构
五阿哥永琪12 小时前
MySQL中操作json的函数!
数据库·mysql·json
来者皆善12 小时前
了解Mysql优化吗?如何优化索引?
数据库·mysql
赤壁小虾14 小时前
【渲染流水线】[逐片元阶段]-[透明度测试]以UnityURP为例
java·前端·数据库
MC皮蛋侠客14 小时前
SQLAlchemy 系列(七):高级建模与高效写入——批量 DML、方言与扩展
数据库·python
奈斯先生Vector15 小时前
把 Midjourney 二次编辑做成生产系统:customId 能力令牌、Action Graph 与 WebUI 精修工作台
数据库·人工智能·架构·aigc·音视频·midjourney
Lethehong16 小时前
双擎并驱·全链路并行:KFS让TB级异构增量同步秒级到达
数据库
MC皮蛋侠客16 小时前
SQLAlchemy 系列(八):AsyncIO、并发与 Web 生命周期——让每个并发任务持有自己的 Session
数据库·python
一水16 小时前
Redis实战:一个AI工作流系统里的五个应用场景,从传参到限流的完整链路
数据库·redis·wpf
枫叶v.17 小时前
Prompt Injection 防不住怎么办?从 Source-Sink 模型设计 Agent 安全边界
数据库·安全·prompt