每日一题,第一篇

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

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

两种答案

#方法二
SELECT
s.Score,
(select count(distinct(Score)) from Scores where Score >= s.Score ) as
'Rank'
FROM
Scores as s
order by Score desc;#方法一
SELECT
s.Score,
dense_rank() over (order by score desc) as
'Rank'
FROM
Scores as s
order by Score desc;

涉及函数

  1. distinct() 去掉重复的记录
  2. dense_rank() 用于排名,排名的数字是连续的。 在mysql 8 上可以使用。低版本不支持
Score Rank
4.00 1
4.00 1
3.85 2
  1. rank() 用于排名,排名的数字是跳跃的。在mysql 8 上可以使用。低版本不支持
Score Rank
4.00 1
4.00 1
3.85 3
  1. count() 统计数量

编写一个 SQL 查询来实现分数排名相关推荐

  1. 面试官:编写一个 SQL 查询,找出每个部门工资第二高的员工

    今天我们来看看大数据开发中row_number函数. 作为一名程序员,求职面试时时常会遇到需要编写一些基础的sql,编写sql这样做的目的主要是考验求职者的逻辑思维及编写sql基础能力.而row_nu ...

  2. 编写一个SQL查询,获取Employee表中第二高的薪水(Salary)

    单选 class X{Y y=new Y();public X(){System.out.print("X");} } class Y{public Y(){System.out. ...

  3. 编写一个 SQL 查询,找出每个部门工资最高的员工。

    Employee 表包含所有员工信息,每个员工有其对应的 Id, salary 和 department Id.+----+-------+--------+--------------+ | Id ...

  4. 编写一个 SQL 查询,来删除 Person表中所有重复的电子邮箱,重复的邮箱里只保留 Id 最小 的那个。

    题目 编写一个 SQL 查询,来删除 Person表中所有重复的电子邮箱,重复的邮箱里只保留 Id 最小的那个. Id Email 1 john@example.com 2 bob@example.c ...

  5. 编写一个 SQL 查询,来删除 Person表中所有重复的电子邮箱,重复的邮箱里只保留 Id 最小 的那个。

    题目 编写一个 SQL 查询,来删除 Person表中所有重复的电子邮箱,重复的邮箱里只保留 Id 最小 的那个. +----+------------------+ | Id | Email | + ...

  6. 编写一个 SQL 查询,满足条件:无论 person 是否有地址信息,都需要基于上述两表提供 person 的以下信息:

    表1为Penson,表2为Address,如下图所示 要求:编写一个 SQL 查询,满足条件:无论 person 是否有地址信息,都需要基于上述两表提供 person 的以下信息: FirstName ...

  7. 编写一个SQL查询来报告 Person 表中每个人的姓、名、城市和州。如果 personId 的地址不在 Address 表中,则报告为空 null 【杭州多测师】【杭州多测师_王sir】...

    编写一个SQL查询来报告 Person 表中每个人的姓.名.城市和州.如果 personId 的地址不在 Address 表中,则报告为空  null . 以 任意顺序 返回结果表. 示例 : Per ...

  8. 2022-12-05:部门工资前三高的所有员工。编写一个SQL查询找出每个部门中收入前三高的员工 。 +------------+----------+--------+ | Department |

    2022-12-05:部门工资前三高的所有员工.编写一个SQL查询找出每个部门中收入前三高的员工 . ±-----------±---------±-------+ | Department | Em ...

  9. 题目描述:编写一个SQL查询,删除学生表中,学号重复的学生信息,重复的学生信息中只保留id最大的那个

    欢迎大家转发,一起传播知识和正能量,帮助到更多人.辛苦大家转发时注明出处(也是咱们公益编程交流群的入口网址),刘经纬老师共享知识相关文件下载地址为:http://liujingwei.cn 解题思路: ...

最新文章

  1. 麻省理工学院开发出可“听音识貌”的人工智能
  2. 腾讯AI Lab解析2017 NIPS三大研究方向,启动教授及学生合作项目
  3. 这样用组图创作内容,能让你的文章被转发
  4. php根据数组某一字段排序,php如何根据数组中某一字段来实现排序
  5. OpenGL多线程实例
  6. 比较两个字符串的相似度算法
  7. postgresql返回行数_怎么优化你的SQL查询?以PostgreSQL为例
  8. android5.1移植记录
  9. Javascript下拉刷新
  10. SpringBoot+Maven整合MyBatis时打包漏掉mapper的xml文件【解决resources调用静态资源失败404】
  11. SketchUp Pro 2018 Mac OS X/Windows 64/32位产品下载
  12. GroupBox与Panel控件
  13. 教你利用 Python 计算同比、环比、定基比
  14. 学一点python基础
  15. ESXi创建的虚机只能ping通自己IP无法ping通网关的问题排查
  16. Elasticsearch 如何自定义扩展词库?
  17. 晓亮的编程经验总结.txt
  18. 视频转gif如何做?三步教你视频转gif制作
  19. pywinauto 自动进行远程桌面登陆 remote desktop connection
  20. How to create hd MAP

热门文章

  1. 2022最新大厂Java面试集合,五面拿下阿里飞猪offer
  2. 大数据学习——克隆虚拟机
  3. 华为IT总监离职时给大家写了一封告别信(ZT)
  4. Android冒险之旅-14-RecycleView(线性,网格,瀑布流)
  5. 新手看Mockplus2.3
  6. ubuntu好用的输入法googlepinyin
  7. asp.net+js+ajax实现手机移动端页面预览、剪裁、上传头像图片
  8. 到底什么是云计算?学云计算能从事哪些职业
  9. ubuntu 18.04 安装 搜狗拼音输入法只有中文标点,没有文字
  10. 关于debug时的断点无效问题 [已解决,不知原因]