mysql rank 排序
来源:互联网 发布:微信红包牛牛源码教程 编辑:程序博客网 时间:2024/05/19 14:20
原题链接:https://leetcode.com/problems/rank-scores/
scores表+----+-------+| Id | Score |+----+-------+| 1 | 3.50 || 2 | 3.65 || 3 | 4.00 || 4 | 3.85 || 5 | 4.00 || 6 | 3.65 |+----+-------+
按照分数排名+-------+------+| Score | Rank |+-------+------+| 4.00 | 1 || 4.00 | 1 || 3.85 | 2 || 3.65 | 3 || 3.65 | 3 || 3.50 | 4 |+-------+------+
1:思路
首先定义 初始排名的值的0, 然后 查询的每一条数据 @rank这个变量就会+1。 这就是一个比较简单的排名, 但是你会发现 score数值一样的话,排名应该是一样的,因此这个并不正确。mysql> set @rank = 0;mysql> select score, (@rank := @rank + 1) as rank from scores order by score desc;+-------+------+| score | rank |+-------+------+| 4.00 | 1 || 4.00 | 2 || 3.85 | 3 || 3.65 | 4 || 3.65 | 5 || 3.50 | 6 |+-------+------+6 rows in set (0.00 sec)
2:比较前一个数值
mysql> set @rank = 0;Query OK, 0 rows affected (0.00 sec)mysql> set @prev = null;Query OK, 0 rows affected (0.00 sec)mysql> select score, if (@prev = score, @rank ,@rank := @rank + 1 ) as Rank , (@prev := score) as tmp from scores order by score desc;+-------+------+------+| score | Rank | tmp |+-------+------+------+| 4.00 | 1 | 4.00 || 4.00 | 1 | 4.00 || 3.85 | 2 | 3.85 || 3.65 | 3 | 3.65 || 3.65 | 3 | 3.65 || 3.50 | 4 | 3.50 |+-------+------+------+6 rows in set (0.00 sec)
0 0
- mysql rank 排序
- mysql rank
- oracle rank排序
- MySQL Partition By Rank
- mysql 之 rank() over()
- MySQL-Rank Scores
- R-排序order(),sort(),rank()
- 【搜索排序】Learning to rank
- MySQL的rank函数实现
- 题目4:MySQL----------Rank Scores
- MySQL实现ROW_NUMBER()/DENSE_RANK()/RANK()
- Rank
- rank()
- rank
- RANK
- Rank
- rank
- Rank
- 常用正则sql 查询
- python中turtle模块画没有角的方格
- JDK1.5新特性--静态导入
- tomcat 部署web项目,2个项目端口号要区分
- Spring MVC入门
- mysql rank 排序
- QT4.8.6移植到TQ2440
- 常用socket函数详解
- Docker 制作python环境
- nginx配置location总结及rewrite规则写法
- java-面向对象-面试题《上》
- 关于 vivado 的IO口约束
- 并行计算—OpenMP—并行区域法求和
- 软件开发的生命周期模式