首页 > 数据库 >力扣178(MySQL)-分数排名(中等)

力扣178(MySQL)-分数排名(中等)

时间:2023-03-14 14:36:54浏览次数:55  
标签:分数 ... dense 178 rank 力扣 MySQL 排名 排序

题目:

表: Scores

编写 SQL 查询对分数进行排序。排名按以下规则计算:

分数应按从高到低排列。
如果两个分数相等,那么两个分数的排名应该相同。
在排名相同的分数后,排名数应该是下一个连续的整数。换句话说,排名之间不应该有空缺的数字。
按 score 降序返回结果表。

查询结果格式如下所示。

 

来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/rank-scores
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

解题思路:

规则:

①分数应按从高到低排列----降序,考虑使用order by ...desc
②如果两个分数相等,那么两个分数的排名应该相同。----例如:1,2,2...
③在排名相同的分数后,排名数应该是下一个连续的整数。换句话说,排名之间不应该有空缺的数字。----例如:1,2,2,3...

根据对规则的分析,应该考虑使用窗口函数dense_rank()  over(),并按成绩scores降序排序。

1 select score,dense_rank() over(order by score desc) as  `rank`
2 from scores;

 注意:

rank是个函数,因此需要加引号括起来才能做别名使用。

小知识:

主要考查rank()、row_number()和dense_rank()用法:

语法:

row_number()|rank()|dense_rank() over ( 
  partition by ... 
  order by ... 
) 

①rank():相同的数字并列排序,下一个数字非连续排序。比如:1,2,2,4

②dense_rank():相同的数字并列排序,下一个数字连续排序。比如:1,2,2,3

③row_number():相同的数字连续排序。比如:1,2,3,4

标签:分数,...,dense,178,rank,力扣,MySQL,排名,排序
From: https://www.cnblogs.com/liu-myu/p/17214725.html

相关文章

  • 力扣904 水果成篮
    水果成篮:按顺序取,问连续最多的两个数有几个。总体思路:1、如果是我们要的数,直接数量加一;2、如果是新的数,那么j-1的位置的数就是第一个数,j位置的数就是第二个数。并且要......
  • docker安装mysql8
    拉取镜像dockerpullmysql:8.0.26 创建文件夹 mkdir-p/var/mysql/{data,conf}  配置cd/var/mysql/confvimmy.cnf  输入以下内容 ......
  • mysql 遍历字段并根据不同值归类
    使用procedure,注意报表是否支持特定关键字(积木报表不支持注入关键字)dropprocedureifexistsshow_battery_info;delimiter&&CREATEPROCEDUREshow_battery_info()......
  • mysql基础知识&&常用命令
    了解什么是数据库?什么是数据管理系统?什么是SQL,他们之间的关系又是什么?数据库英文单词DataBase,简称DB,按照一定格式存储数据的一些文件的组合。顾名思义:存储数据的仓库,实......
  • mysql
    腾讯云备案控制台开发者社区学习实践活动专区工具TVP文章/答案/技术大牛搜索写文章提问登录/注册 专栏首页技术知识分享Linux/UNIX上yum......
  • 【MySQL】substring_index 函数详解
    【MySQL】substring_index函数详解命令格式stringsubstring_index(string<str>,string<separator>,int<count>)命令说明截取字符串str第count个分隔符之前的字......
  • 使用Java替换字符串占位符的几种方法 String url2 = "jdbc:mysql://{0}:{1}/{2}"
    使用Java替换字符串占位符的几种方法https://blog.csdn.net/m0_67402125/article/details/125383655importorg.apache.commons.lang.text.StrSubstitutor;importj......
  • 一天吃透MySQL锁面试八股文
    本文已经收录到Github仓库,该仓库包含计算机基础、Java基础、多线程、JVM、数据库、Redis、Spring、Mybatis、SpringMVC、SpringBoot、分布式、微服务、设计模式、架构、校......
  • Mysql锁与事务
    我们的数据库一般都会并发执行多个事务,多个事务可能会并发的对相同的一批数据进行增删改查操作,可能就会导致我们说的脏写、脏读、不可重复读、幻读这些问题。这些问题的本......
  • CF1788D Moving Dots 题解
    可能更好的阅读体验题目传送门题目翻译题目解析考虑怎样才能产生贡献,显然对于留下的相邻的\(l,r\),需要让\(l\)向右,\(r\)向左即可产生\(1\)的贡献。接下来就是考......