题目描述

编写一个 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`

题解

# Write your MySQL query statement below

SELECT

Score,

DENSE_RANK() OVER(ORDER BY Score DESC) AS `Rank`

FROM

Scores;

DENSE_RANK、RANK、ROW_NUMBER 的使用说明

Function

Description

DENSE_RANK

并列连续排名

RANK

并列跳跃排名

ROW_NUMBER

连续排名

eg.

--------------------------------------------------------

-- table_name: Scores

--

-- +----+-------+

-- | id | score |

-- +----+-------+

-- | 1 | 78 |

-- | 2 | 89 |

-- | 3 | 86 |

-- | 4 | 91 |

-- | 5 | 78 |

-- | 6 | 89 |

-- | 7 | 89 |

-- +----+-------+

--------------------------------------------------------

--------------------------------------------------------

SELECT

id,

score,

DENSE_RANK() OVER(ORDER BY score DESC) AS `DENSE_RANK`,

RANK() OVER(ORDER BY score DESC) AS `RANK`,

ROW_NUMBER() OVER(ORDER BY score DESC) AS `ROW_NUMBER`

FROM

Scores;

--------------------------------------------------------

--------------------------------------------------------

-- result:

--

-- +----+-------+------------+------+------------+

-- | id | score | DENSE_RANK | RANK | ROW_NUMBER |

-- +----+-------+------------+------+------------+

-- | 4 | 91 | 1 | 1 | 1 |

-- | 2 | 89 | 2 | 2 | 2 |

-- | 6 | 89 | 2 | 2 | 3 |

-- | 7 | 89 | 2 | 2 | 4 |

-- | 3 | 86 | 3 | 5 | 5 |

-- | 1 | 78 | 4 | 6 | 6 |

-- | 5 | 78 | 4 | 6 | 7 |

-- +----+-------+------------+------+------------+

--------------------------------------------------------

java 并列排名,178. 分数排名相关推荐

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  8. LeetCode力扣刷题数据库(178):分数排名

    178分数排名 表: Scores +-------------+---------+ | Column Name | Type | +-------------+---------+ | id | ...

  9. mysql并列查询_MYSQL实现排名及查询指定用户排名功能(并列排名功能)实例代码...

    前言 本文主要介绍了关于mysql实现排名及查询指定用户排名功能(并列排名功能)的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧 表结构: create table test ...

最新文章

  1. 孙立岩 python-basic: 用于学习python基础的课件(十三十四 十五)
  2. Flask 备注一(单元测试,Debugger, Logger)
  3. boost::math::tools::luroth_expansion用法的测试程序
  4. HDU 4292 Food (成都赛区网络赛第五题,拆点网络流)
  5. c++中的函数适配器
  6. 华为荣耀20和x10比较_荣耀X10和华为畅享20plus,到底哪个更值得入手?
  7. java简单自定义Annotation
  8. linux期中测试答案 版本号,Linux认证测试题含答案
  9. mysql 清空二进制日志
  10. HttpClient配置
  11. 【算法】排序_直接插入排序及其 优化(希尔排序)
  12. java网络爬虫视频教程下载
  13. 基于Office Visio 2010 图表绘制
  14. 机器学习十大算法!入门看这个就够了~
  15. 对数据运营工作的思考及优化方向
  16. c语言 编译开关用法,C语言中define的使用方法
  17. 内嵌资源html,go 1.16 embed 实现资源文件(html, css, js等)内嵌
  18. 修改时验证名称是否重复除了本身
  19. 小觅相机录制rosbag数据集
  20. QA质量管理:构建全过程质量管理体系

热门文章

  1. android 省市区选择器
  2. VirtualBox虚拟机与主机互相访问开启
  3. PostgreSQL11 data数据库目录迁移
  4. jquery ajax json转换出错Invalid JSON
  5. 计算机硬件基础大纲,计算机硬件基础教学大纲..docx
  6. linux date 常用格式,5、总结Linux常用命令使用格式,并用实例说明。例如echo、screen、date、ifconfig、export等命令...
  7. 使用adb查看数据库的一些命令
  8. Spring JdbcTemplate Curd
  9. sql语法,未完待续
  10. Python基础—08-函数使用(02)