参考: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)
)
效果:(值相同,排名也相同;排名值递增不连续)
附数据:
相关推荐
查询数据是指从数据库中的数据表或视图中获取所需要的数据,在mysql中,可以使用SELECT语句来查询数据。根据查询条件的不同,数据库系统会找到不同的数据。 SELECT语句的基本语法格式如下: [sql] view plain copy ...
mysql代码-MySQL-查询成绩为第二名(第N名)的所有学生数据
MySQL 查询练习(50题) MySQL 查询练习(50题) I 1 -- 建表 1 1.1 -- 学生表 1 1.2 -- 课程表 1 1.3 -- 教师表 1 1.4 -- 成绩表 2 1.5 -- 插入学生表测试数据 2 1.6 -- 课程表测试数据 2 1.7 -- 教师表测试数据 2 ...
主要给大家介绍了关于MYSQL实现排名及查询指定用户排名功能(并列排名功能)的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起看看吧
主要介绍了MySQL中给自定义的字段查询结果添加排名的方法,只需要对counter写一个小算式,非常简单,需要的朋友可以参考下
mysql面试题,经典sql语句.
--20、查询学生的总成绩并进行排名 --20.1 查询学生的总成绩 --21、查询不同老师所教不同课程平均分从高到低显示 --22、查询所有课程的成绩第2名到第3名的学生信息及该课程成绩 --26、查询每门课程被选修的学生数 ...
0x01.需求 Employee 表包含所有员工信息,每个员工有其对应的工号 Id,姓名 Name,工资 Salary 和部门编号 DepartmentId 。 +----+-------+--------+--------------+ | Id | Name | Salary | DepartmentId | ...
04-MySQL服务普通查询日志介绍及实践 05-MySQL服务慢查询日志介绍及实践 06-MySQL服务二进制日志的3种工作模式详细介绍 07-MySQL服务二进制日志的3种工作模式配置方法实战 第十部-老男孩MySQL常用引擎及优缺点-应用...
主要介绍了MySQL页面访问统计及排名情况,涉及到mysql页面访问统计,mysql统计排名相关知识,感兴趣的朋友一起学习吧
–按某一字段分组取最大(小)值所在行的数据 代码如下: /* 数据如下: nameval memo a 2 a2(a的第二个值) a 1 a1–a的第一个值 a 3 a3:a的第三个值 b 1 b1–b的第一个值 b 3 b3:b的第三个值 b 2 b2b2b2b2 b 4 b4b4 b ...
各种查询(学生的单科成绩、总成绩、排名) 各种统计(统计及格率、统计80分以上的同学等) 管理端权限 登录系统 实现对学生的CURD 实现对老师的CURD 实现各种查询、统计 学完这个项目后的收获: 掌握项目开发的...
MySQL 8.0 是世界上最流行的开源关系型数据库管理系统之一。 特性和改进: JSON 支持:MySQL 8.0 引入了对 JSON 格式...Window Functions:MySQL 8.0 引入了窗口函数,可以执行类似于分析函数的计算,如排名、排序等。
用java+mySQL做的成绩管理系统 本程序包括19个类文件,每个类文件只含有一个类,分别是包含main方法的主类 Main,实现登录功能的类 Login, 实现各种功能选择功能的类 Function, 实现数据库连接的类 DataBaseCreate, ...
MySQL的group by与Oracle有所不同,查询得字段可以不用写聚合函数,查询结果取得是每一组的第一行记录。 利用上面的特点,可以利用mysql实现一种独特的排序; 首先先按某个字段进行order by,然后把有顺序的表进行...
淘宝上现在有在卖的版本,大部分查询是调用其他站的,账户具体点数查询错误,其他查询,如排名等都是调用其他站的,调用站没问题,那么就没问题 1、首先打开根目录下 config.php 修改数据库登录用户名、密码、数据库...
用途:帮助读者了解MySQL中的JOIN操作,掌握LEFT JOIN、ON条件过滤和笛卡尔积的使用方法,从而在实际开发中灵活运用JOIN操作实现表关联查询。本文还提供了扩展内容,如排名等应用场景,帮助读者进一步理解JOIN操作的...
基于协同推荐算法,包括用户网页和管理后台,包含景点类型模块、旅游景点模块、行程推荐模块、美食推荐模块、景点排名模块,还包含系统自带的用户管理、部门管理、角色管理、菜单管理、日志管理、数据字典管理、文件...
排名查询语句,顺序查询,分组内查询; 排名查询语句,顺序查询,分组内查询; 排名查询语句,顺序查询,分组内查询;