mysql 经典问题_mysql经典排名问题
问题:编写一个 SQL 查询来实现评分排名。如果两个分数相同,则两个分数排名(Rank)相同。
评分表ratings
方法一:不运用dense_rank(),运用子查询
解决这一问题可以分为两个步骤:
步骤一:降序排列分数
select a.Rating as Rating from ratings a order by a.Rating DESC;
步骤二:每个评分对应的排名
思路:可以先提取出大于等于X的所有分数集合H,将H去重后的元素个数就是X的排名。
先提取集合H:
select b.Rating from ratings b where b.Rating>= X;
再求出集合H去重之后的元素个数:
select count(distinct b.Score) from Scores b where b.Score >= X as Rank;
最终将两个步骤结合:
select a.Rating as Rating,
(select count(distinct b.Rating) from ratings b where b.Rating >= a.Rating) AS "Rank"
from ratings a order by a.Rating DESC;
方法二:运用dense_rank()
select Rating, dense_rank() over (order by Rating desc) as "Rank" from ratings;
附:mysql中Rank()和dense_rank()的区别
不同点:RANK()是跳跃排序,即如果有两条记录重复,接下来是第三级别
如:1 2 2 4,会跳过3
DENSE_RANK()是连续排序,即如果有两条记录重复,接下来是第二级别
如:1 2 2 3
mysql 经典问题_mysql经典排名问题相关推荐
- mysql的题目_mysql经典例题
MYSQL上机题 1. 使用sql语句创建数据库,名称为CustomDB 2. 创建数据表customer(客户).deposite(存款).bank(银行),表结构如下:(10分) customer ...
- mysql经典语句_Mysql经典语句
一.查看当前的数据库: SHOW DATABASES; 二.查看当前数据库中的所有表: SHOW TABLES; 三.创建一个新的数据库:CREATE DATABASE数据库名; 四.启动和停 ...
- mysql并列查询_MYSQL实现排名及查询指定用户排名功能(并列排名功能)实例代码...
前言 本文主要介绍了关于mysql实现排名及查询指定用户排名功能(并列排名功能)的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧 表结构: create table test ...
- 《PHP、MySQL和Apache入门经典(第5版)》一2.11 实践练习
本节书摘来自异步社区<PHP.MySQL和Apache入门经典(第5版)>一书中的第2章,第2.11节,作者[美]Julie C. Meloni,更多章节内容可以访问云栖社区"异 ...
- MySQL UPDATE 语句一个“经典”的坑
转载自 MySQL UPDATE 语句一个"经典"的坑 来源:ju.outofmemory.cn/entry/336774 有问题的SQL语句 why? 倒回去再重试验一把 最近 ...
- 《PHP、MySQL和Apache入门经典(第5版)》一2.7 基本安全规则
本节书摘来自异步社区<PHP.MySQL和Apache入门经典(第5版)>一书中的第2章,第2.7节,作者[美]Julie C. Meloni,更多章节内容可以访问云栖社区"异步 ...
- MySQL的10大经典错误
MySQL的10大经典错误 Top 1:Too many connections(连接数过多,导致连接不上数据库,业务无法正常进行) 解决问题的思路: 首先先要考虑在我们 MySQL 数据库参数文件里 ...
- mysql历史命令_MySQL交互技巧
本文介绍一些与客户端程序mysql进行交互的技巧,这些技巧能帮助我们更有效率地使用它,减少文字输入.此外,还会描述"怎样更加方便地连接到服务器",以及"如何在不经手工输入 ...
- mysql 添加列_mysql中添加列、修改列、删除列的方法
本节内容: ALTER TABLE:添加,修改,删除表的列,约束等表的定义. 操作语句: 查看列:desc 表名; 修改表名:alter table t_book rename to bbb; 添加列 ...
最新文章
- 第九章 Django框架——csrf请求伪造和csrf_token使用
- Allegro禁布区打过孔或走线消除DRC错误
- Linux基础--虚拟机的控制及linux系统的基本操作
- python快递分拣小程序_python英语单词测试小程序代码实例
- 重磅来袭,2018 年 6 月编程语言排行榜
- MySQL中的常用函数
- win7 64位运行不了服务器,G6-e标准包可以装在win7 64位系统上吗?现在提示不能登陆到服务器...
- IFRAME跨域名的解决方法,终结版(小张.NET原创)
- maven 绑定html压缩,Maven使用yuicompressor-maven-plugin打包压缩css、js文件
- mysql会话是什么意思_MySQL会话临时表空间有什么作用
- 如何把网页保存为PDF
- 计算机主机和音箱的接口电路,Zigbee协议与USB主机无线音箱电路设计
- WLAN驱动分析文档
- SpringBoot apple苹果支付回调验证
- 如何将视频从横屏转为竖屏?
- [技术分享]-Servlet/tomcat/spring mvc之间关系
- ChinaSoft 论坛巡礼 | 程序设计教育论坛
- 逻辑回归优化算法总结一
- 《我是一只IT小小鸟》读书笔记(2)
- 计算机网络学习笔记(三)——网络核心、接入网与物理媒体
热门文章
- python连接oracle视频教程_python怎么连接oracle
- 蓝牙驱动卸载后自动安装_智能产品 | 安装水循环系统后,全自动洗车机洗车会更节水吗?...
- Oracle数据库用户失效对象,Oracle数据库对象失效解决
- array_multisort - 如何保持键值,不重置键值,键名保持不变
- Android好评功能,Android应用评分功能的实现
- python3 yield 大文件_详解Python3中yield生成器的用法
- oracle 性别默认是男_被实名举报“制造性别对立”的杨笠,到底冤不冤?
- logback 的 filter
- RedHat7.0启动后黑屏
- python自关联_Django之Mode的外键自关联和引用未定义的Model方法