编写一个 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. 分数排名相关推荐

  1. LeetCode MySQL 178. 分数排名(dense_rank连续排名)

    文章目录 1. 题目 2. 解题 1. 题目 编写一个 SQL 查询来实现分数排名. 如果两个分数相同,则两个分数排名(Rank)相同. 请注意,平分后的下一个名次应该是下一个连续的整数值. 换句话说 ...

  2. LeetCode数据库 178. 分数排名

    178. 分数排名 SELECT Score, (SELECT COUNT(DISTINCT(b.Score))# 查看有多少个b.Score大于等于当前的a.ScoreFROM Scores AS ...

  3. leetcode数据库题库-178. 分数排名

    leetcode数据库题库-178. 分数排名https://leetcode-cn.com/problems/rank-scores/题目核心是[重复且连续]的排序 ,排序相关函数简单整理下 一.R ...

  4. 178.分数排名(数据库)

    178.分数排名(数据库) 题目 示例 解题 方法一 方法二 题目 编写 SQL 查询对分数进行排序.排名按以下规则计算: 分数应按从高到低排列. 如果两个分数相等,那么两个分数的排名应该相同. 在排 ...

  5. leetcode 178. 分数排名(SQL)

    编写一个 SQL 查询来实现分数排名.如果两个分数相同,则两个分数排名(Rank)相同.请注意,平分后的下一个名次应该是下一个连续的整数值.换句话说,名次之间不应该有"间隔". + ...

  6. java 并列排名,178. 分数排名

    题目描述 编写一个 SQL 查询来实现分数排名. 如果两个分数相同,则两个分数排名(Rank)相同.请注意,平分后的下一个名次应该是下一个连续的整数值.换句话说,名次之间不应该有"间隔&qu ...

  7. 【sql】178. 分数排名---两种解决方法,是否使用group by分组成为重点,建议使用分组!!!

    SQL架构 编写一个 SQL 查询来实现分数排名. 如果两个分数相同,则两个分数排名(Rank)相同.请注意,平分后的下一个名次应该是下一个连续的整数值.换句话说,名次之间不应该有"间隔&q ...

  8. MySQL实现分数排名问题

    数据库记录 mysql> select * from scores; +----+-------+ | Id | Score | +----+-------+ | 1 | 3.50 | | 2 ...

  9. 文巾解题 178. 分数排名

    1 题目描述 2 解题思路 最后的结果包含两个部分,Score这一列是降序排列的分数,Rank这一列则是每个分数对应的排名. SELECT s1.Score, (SELECT COUNT( DISTI ...

  10. java mySQL名字分数排名_java做成绩排名表,如何实现同分同名次

    https://zhidao.baidu.com/question/1900171286360976020.html?qq-pf-to=pcqq.c2c 思路: 排序肯定还是要排的, 按照Java成绩 ...

最新文章

  1. Java的重写和重载机制
  2. 比特币地址可以查到本人吗_查看每一个地址有多少个比特币
  3. sum服务器操作系统,SUM服务器监控软件
  4. 一个IT时代的终结:109岁的IBM将分拆为两家公司
  5. redis安装190923课堂版
  6. c语言程序算法思想,C语言实现科学计算器(算法思想)
  7. Django 发送邮件
  8. UVA11760 Brother Arif, Please feed us!【bitset】
  9. win10杜比音效安装教程以及资源
  10. 计算机测试英语词汇,英语听说测试-计算机专业英语词汇.pdf
  11. 出口商贸易融资工具:汇出汇款融资
  12. (MySQL)Incorrect string value: '\xF0\x9F\x98\x82\xF0\x9F...' for column 'readerName' at row 1
  13. 记一次云服务器挖矿病毒处理过程
  14. 支付宝与微信对账文件解析
  15. 武汉大学和华中科技大学计算机哪个好,华科算不算十大名校 武汉大学和华中科技大学哪个好?...
  16. 17个学术论文搜索引擎
  17. 思考的技术- 读书笔记
  18. 删除win10电脑U盘使用记录
  19. css svg使用_使用CSS使SVG响应
  20. codeforces-777E Hanoi Factory (栈+贪心)

热门文章

  1. 2013年1月12日学习内容
  2. FastDfs分片上传文件实战
  3. Javascript编程技巧 -- 函数记忆
  4. python md5函数_python实现md5加密
  5. python的异步网络编程_python异步网络编程怎么使socket关闭之后立即执行一段代码?...
  6. java杰森_java - 杰森格式错误,当他已经得到一个数组时询问 - 堆栈内存溢出
  7. 防止误删的神器-ECS实例删除保护
  8. 白帽子发现美军网站SQL注入漏洞,可获取敏感数据
  9. mount 需要同时设置 noatime 和 nodiratime 吗?
  10. 决策树算法原理(下)