当前位置: 首页 > news >正文

[LeetCode] 178. 分数排名

题目:编写一个sql语句来实现分数排名,如果两个分数相同,则两个分数排名(Rank)相同,而且下一个名次应该是下一个连续的整数值,也就是说,名次之间不能有间隔。


 
  1. +----+-------+
  2. | Id | Score |
  3. +----+-------+
  4. | 1 | 3.50 |
  5. | 2 | 3.65 |
  6. | 3 | 4.00 |
  7. | 4 | 3.85 |
  8. | 5 | 4.00 |
  9. | 6 | 3.65 |
  10. +----+-------+

期望结果如下:


 
  1. +-------+------+
  2. | Score | Rank |
  3. +-------+------+
  4. | 4.00 | 1 |
  5. | 4.00 | 1 |
  6. | 3.85 | 2 |
  7. | 3.65 | 3 |
  8. | 3.65 | 3 |
  9. | 3.50 | 4 |
  10. +-------+------+

 

解法一:对于每一个分数,从表中找出有多少个大于或等于该分数的不重复分数,然后降序排列

select Score,
(select count(distinct Score) from Scores as s2 where s2.Score >= s1.Score) Rank 
from Scores as s1
order by Score DESC;

解法二:使用联结 join,条件是左表的分数小于等于右表的分数时,对右表的分数进行计数(即计算有几个不重复的分数大于自己,计算结果就是rank),然后根据id分组后,再根据分数降序排列

select s1.Score, count(distinct s2.Score) Rank
from Scores as s1 join Scores as s2 on s1.Score <= s2.Score
group by s1.Id 
order by s1.Score DESC;

原文链接:【LeetCode--数据库】分数排名

相关文章:

  • MySQL下载安装教程和修改密码(亲测有用)
  • 免费的外网映射工具Ngrok 国内版,满足基本的开发测试需求
  • 阿里云申请免费SSL证书-阿里云云盾证书 - Digicert+Symantec 免费型DV SSL
  • Nginx上配置SSL证书
  • Nginx配置SSL证书实现HTTPS访问
  • Spring Boot 入门
  • SpringBoot2整合Thymele时,静态资源加载不出来
  • SpringBoot使用jdbc数据访问时遇到的问题
  • VirtualBox虚拟机中CentOS 7的网络配置
  • docker部署mysql 并实现远程连接(navicat)
  • Mysql 8.0.13 安装和卸载教程(windows10)
  • django把SQLite数据库的数据导入到MySQL数据库中
  • 采用Nginx+uWSGI部署Django项目
  • Hexo Next主题中集成gitalk评论系统
  • Django对符合条件的值求和和分组求和(aggregate)
  • 网络传输文件的问题
  • codis proxy处理流程
  • iOS高仿微信项目、阴影圆角渐变色效果、卡片动画、波浪动画、路由框架等源码...
  • JavaScript学习总结——原型
  • 表单中readonly的input等标签,禁止光标进入(focus)的几种方式
  • 基于 Ueditor 的现代化编辑器 Neditor 1.5.4 发布
  • 力扣(LeetCode)965
  • 每天10道Java面试题,跟我走,offer有!
  • 免费小说阅读小程序
  • 巧用 TypeScript (一)
  • 如何设计一个微型分布式架构?
  • 删除表内多余的重复数据
  • 微信小程序设置上一页数据
  • 一加3T解锁OEM、刷入TWRP、第三方ROM以及ROOT
  • 用 vue 组件自定义 v-model, 实现一个 Tab 组件。
  • d²y/dx²; 偏导数问题 请问f1 f2是什么意思
  • ​​​​​​​ubuntu16.04 fastreid训练过程
  • ​flutter 代码混淆
  • ​草莓熊python turtle绘图代码(玫瑰花版)附源代码
  • ​香农与信息论三大定律
  • #### go map 底层结构 ####
  • (09)Hive——CTE 公共表达式
  • (Mac上)使用Python进行matplotlib 画图时,中文显示不出来
  • (仿QQ聊天消息列表加载)wp7 listbox 列表项逐一加载的一种实现方式,以及加入渐显动画...
  • (非本人原创)史记·柴静列传(r4笔记第65天)
  • (附源码)springboot宠物管理系统 毕业设计 121654
  • (附源码)springboot助农电商系统 毕业设计 081919
  • (附源码)小程序儿童艺术培训机构教育管理小程序 毕业设计 201740
  • (免费领源码)Java#Springboot#mysql农产品销售管理系统47627-计算机毕业设计项目选题推荐
  • (求助)用傲游上csdn博客时标签栏和网址栏一直显示袁萌 的头像
  • (使用vite搭建vue3项目(vite + vue3 + vue router + pinia + element plus))
  • (小白学Java)Java简介和基本配置
  • .class文件转换.java_从一个class文件深入理解Java字节码结构
  • .NET Core实战项目之CMS 第十二章 开发篇-Dapper封装CURD及仓储代码生成器实现
  • .NET WebClient 类下载部分文件会错误?可能是解压缩的锅
  • /etc/apt/sources.list 和 /etc/apt/sources.list.d
  • ::前边啥也没有
  • @DependsOn:解析 Spring 中的依赖关系之艺术
  • @private @protected @public
  • [ C++ ] STL_stack(栈)queue(队列)使用及其重要接口模拟实现