Leetcode -MySQL-178. 分数排名
编写一个 SQL 查询来实现分数排名。
如果两个分数相同,则两个分数排名(Rank)相同。请注意,平分后的下一个名次应该是下一个连续的整数值。换句话说,名次之间不应该有“间隔”。
+----+-------+
| Id | Score |
+----+-------+
| 1 | 3.50 |
| 2 | 3.65 |
| 3 | 4.00 |
| 4 | 3.85 |
| 5 | 4.00 |
| 6 | 3.65 |
+----+-------+
例如,根据上述给定的 Scores 表,你的查询应该返回(按分数从高到低排列):
+-------+------+
| Score | Rank |
+-------+------+
| 4.00 | 1 |
| 4.00 | 1 |
| 3.85 | 2 |
| 3.65 | 3 |
| 3.65 | 3 |
| 3.50 | 4 |
+-------+------+
重要提示:对于 MySQL 解决方案,如果要转义用作列名的保留字,可以在关键字之前和之后使用撇号。例如 `Rank`
方法一:
先按score倒排序,用dense_rank()函数排名,即可重复、非跳跃排名。
select score,dense_rank() over(order by score desc) as `Rank` from scores;
方法二:目前不太懂这个表自连接,有哪位大佬明白的,评论区间?
大佬思路如下:
【首先sql的执行顺序是from, where,select,其次找出排名也就相当于找出大于等于该数的不重复数字有几个(数相同排名相同).用group by 是因为需要对每个数据进行排名】
select s1.Score,count(distinct(s2.score)) Rank
from
Scores s1,Scores s2
where
s1.score<=s2.score
group by s1.Id
order by Rank
Leetcode -MySQL-178. 分数排名相关推荐
- LeetCode MySQL 178. 分数排名(dense_rank连续排名)
文章目录 1. 题目 2. 解题 1. 题目 编写一个 SQL 查询来实现分数排名. 如果两个分数相同,则两个分数排名(Rank)相同. 请注意,平分后的下一个名次应该是下一个连续的整数值. 换句话说 ...
- LeetCode数据库 178. 分数排名
178. 分数排名 SELECT Score, (SELECT COUNT(DISTINCT(b.Score))# 查看有多少个b.Score大于等于当前的a.ScoreFROM Scores AS ...
- leetcode数据库题库-178. 分数排名
leetcode数据库题库-178. 分数排名https://leetcode-cn.com/problems/rank-scores/题目核心是[重复且连续]的排序 ,排序相关函数简单整理下 一.R ...
- 178.分数排名(数据库)
178.分数排名(数据库) 题目 示例 解题 方法一 方法二 题目 编写 SQL 查询对分数进行排序.排名按以下规则计算: 分数应按从高到低排列. 如果两个分数相等,那么两个分数的排名应该相同. 在排 ...
- leetcode 178. 分数排名(SQL)
编写一个 SQL 查询来实现分数排名.如果两个分数相同,则两个分数排名(Rank)相同.请注意,平分后的下一个名次应该是下一个连续的整数值.换句话说,名次之间不应该有"间隔". + ...
- java 并列排名,178. 分数排名
题目描述 编写一个 SQL 查询来实现分数排名. 如果两个分数相同,则两个分数排名(Rank)相同.请注意,平分后的下一个名次应该是下一个连续的整数值.换句话说,名次之间不应该有"间隔&qu ...
- 【sql】178. 分数排名---两种解决方法,是否使用group by分组成为重点,建议使用分组!!!
SQL架构 编写一个 SQL 查询来实现分数排名. 如果两个分数相同,则两个分数排名(Rank)相同.请注意,平分后的下一个名次应该是下一个连续的整数值.换句话说,名次之间不应该有"间隔&q ...
- MySQL实现分数排名问题
数据库记录 mysql> select * from scores; +----+-------+ | Id | Score | +----+-------+ | 1 | 3.50 | | 2 ...
- 文巾解题 178. 分数排名
1 题目描述 2 解题思路 最后的结果包含两个部分,Score这一列是降序排列的分数,Rank这一列则是每个分数对应的排名. SELECT s1.Score, (SELECT COUNT( DISTI ...
- java mySQL名字分数排名_java做成绩排名表,如何实现同分同名次
https://zhidao.baidu.com/question/1900171286360976020.html?qq-pf-to=pcqq.c2c 思路: 排序肯定还是要排的, 按照Java成绩 ...
最新文章
- Java的重写和重载机制
- 比特币地址可以查到本人吗_查看每一个地址有多少个比特币
- sum服务器操作系统,SUM服务器监控软件
- 一个IT时代的终结:109岁的IBM将分拆为两家公司
- redis安装190923课堂版
- c语言程序算法思想,C语言实现科学计算器(算法思想)
- Django 发送邮件
- UVA11760 Brother Arif, Please feed us!【bitset】
- win10杜比音效安装教程以及资源
- 计算机测试英语词汇,英语听说测试-计算机专业英语词汇.pdf
- 出口商贸易融资工具:汇出汇款融资
- (MySQL)Incorrect string value: '\xF0\x9F\x98\x82\xF0\x9F...' for column 'readerName' at row 1
- 记一次云服务器挖矿病毒处理过程
- 支付宝与微信对账文件解析
- 武汉大学和华中科技大学计算机哪个好,华科算不算十大名校 武汉大学和华中科技大学哪个好?...
- 17个学术论文搜索引擎
- 思考的技术- 读书笔记
- 删除win10电脑U盘使用记录
- css svg使用_使用CSS使SVG响应
- codeforces-777E Hanoi Factory (栈+贪心)
热门文章
- 2013年1月12日学习内容
- FastDfs分片上传文件实战
- Javascript编程技巧 -- 函数记忆
- python md5函数_python实现md5加密
- python的异步网络编程_python异步网络编程怎么使socket关闭之后立即执行一段代码?...
- java杰森_java - 杰森格式错误,当他已经得到一个数组时询问 - 堆栈内存溢出
- 防止误删的神器-ECS实例删除保护
- 白帽子发现美军网站SQL注入漏洞,可获取敏感数据
- mount 需要同时设置 noatime 和 nodiratime 吗?
- 决策树算法原理(下)