MySQL 查询排名
参考:http://fellowtuts.com/mysql/query-to-obtain-rank-function-in-mysql
前段时间看到个帖子,是关于用 SQL 查询排名的。
那个帖子里针对的数据库是 Oracle,用到了 Oracle 自带的函数 RANK(或 DENSE_RANK)。
由于 MySQL 里没有相应的类似函数,所以写 SQL 会稍微繁琐一点。
参考文章的主要思路:
- 对目标列排序
- 设置一个变量作为排名值,在每条记录中自增 1
方案一:
SQL: (如果想要降序排名,可以改成 ORDER BY age DESC)
效果:(值相同,排名不同)
方案二:
SQL: (
暂存上一条记录的 age (@prevRank)。
> 如果当前 age 与其相等,使用与前一记录相同的排名;
> 否则排名加一,并更新 @prevRank
)
效果:(值相同,排名也相同;排名值连续递增)
方案三:
SQL: (
增加一个变量(@incRank)用于记录序号(类似方案一)。
> 如果当前 age 与上一条记录相同,使用与前一记录相同的排名(类似方案二)
> 否则使用序号(@incRank)
)
效果:(值相同,排名也相同;排名值递增不连续)
附数据:
- 大小: 6.6 KB
- 大小: 10.9 KB
- 大小: 7.5 KB
- 大小: 10.7 KB
- 大小: 9 KB
- 大小: 8.2 KB
- 大小: 17.2 KB
- 查看图片附件
MySQL 查询排名相关推荐
- MySql 查询排名前10(包含并列)Sql
今天一个测试的朋友去面试,考察了她数据库查询的一些语法问题,但是一些细节她没有考虑进去被刷下了.果然行业标准提高了啊. 贴一下笔试题目. –1.学生表 Student(SId,Sname,Sage,S ...
- mysql:查询排名
sql语句查询排名 思路:有点类似循环里面的自增一样,设置一个变量并赋予初始值,循环一次自增加1,从而实现排序: mysql里则是需要先将数据查询出来并先行按照需要排序的字段做好降序desc,或则升序 ...
- MySQL 查询学生的总成绩并进行排名_MySQL查询各科成绩前三名的记录及排名(不考虑成绩并列情况)...
MySQL查询各科成绩前三名的记录及排名(不考虑成绩并列情况) MySQL查询各科成绩前三名的记录及排名(不考虑成绩并列情况) 我的表结构: 先放代码 -- 查询各科成绩前三名的记录(不考虑成绩并列情 ...
- mysql 查询字段排名_mysql:查询排名
sql语句查询排名 思路:有点类似循环里面的自增一样,设置一个变量并赋予初始值,循环一次自增加1,从而实现排序: mysql里则是需要先将数据查询出来并先行按照需要排序的字段做好降序desc,或则升序 ...
- mysql 查询成绩排名_mysql 学生成绩查询排名
sql语句查询排名 思路:有点类似循环里面的自增一样,设置一个变量并赋予初始值,循环一次自增加1,从而实现排序: mysql里则是需要先将数据查询出来并先行按照需要排序的字段做好降序desc,或则升序 ...
- MySql排序并查询排名
MySql排序并查询排名 SELECT u.uid,u.name,u.score, @rownum := @rownum + 1 AS rownum FROM (SELECT @rownum := 0 ...
- mysql作排名,MYSQL实现排名及查询指定用户排名功能(并列排名功能)实例代码...
前言 本文主要介绍了关于MYSQL实现排名及查询指定用户排名功能(并列排名功能)的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧 表结构: CREATE TABLE test ...
- mysql查询成绩排名
mysql查询成绩排名 表: create table study.sort_table (name varchar(20) null comment '姓名',score int null comm ...
- mysql排名第一_SQL查询排名第二名的信息
今天看见同学去面试的面试题,查询出某个字段排名第二名的信息,自己就看看 如果是Oracle ,这不就是考察Oracle分页么,以Oracle的emp表为例,根据薪水排名,查询排名第二的员工信息: se ...
最新文章
- 单个Transformer完成信息检索,谷歌用可微搜索索引打败双编码器模型
- python之33个关键字详解_Python 中的关键字 with 详解
- MKTickerView
- 圈子 | 精彩预告:P2P金融那些事儿
- excel 公式 单引号 concat_Excel两个新函数帮你快速搞定批量连接
- 博士生录取采用审核制,存在的一些明显问题!
- oracle查询数据库日志大小,Oracle的日志缓冲区大小查询方法———学习笔记 | 学步园...
- PHP中的Array类型其实是Hashtable
- mysql 转int_MySQL索引凭什么能让查询效率提高这么多?
- RFC2616中文版(8)连接
- matlab求两点的距离,matlab求两点间距离
- 深刻理解Binder机制
- 批量生成条形码并写入到excel文件
- 获取当周和上周的周一、周日时间
- 曹雪芹的诗歌鸿蒙,曹雪芹的诗
- 干货 | 18个 Python 高效编程技巧
- 计算机基础知识制图,计算机绘图基础
- 如何成为一名优秀的网络工程师?
- 野兽北京读书记:关于精神力量的层次
- 深入理解volatile(Java)