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;
相关推荐
Evan芙6 分钟前
基于Nginx和Python的动态站点安装配置
数据库·python·nginx
程序员大辉16 分钟前
免费的mysql链接工具HeidiSQL比Navicat好用
数据库·mysql
cui_win34 分钟前
Redis 生产环境命令管控规范
数据库·redis·缓存
woshilys38 分钟前
oracle 和sql server 查询数据时锁的区别
数据库·oracle
if时光重来38 分钟前
kingbase数据库指定数据表自增id重置
数据库·python·sql
jingyucsdn41 分钟前
将postgresql结构和数据备份成sql语句
数据库·sql·postgresql
我科绝伦(Huanhuan Zhou)43 分钟前
Oracle等待事件:性能诊断与优化的核心指南
数据库·oracle
梦里不知身是客111 小时前
explain分析SQL语句分析sql语句的优劣
java·数据库·sql
程序员zgh1 小时前
SOLID软件设计原则 解析
数据库
TDengine (老段)1 小时前
开放生态破局工业大数据困局:TDengine 的迭代升级与全链路数据自由流动
大数据·数据库·物联网·时序数据库·tdengine·涛思数据