MySQL 中的 Rank 函数?

mysqldatabasemysqli

rank() 函数可用于对结果集分区内的每一行进行排名。

首先,让我们创建一个表 −

mysql> create table RankDemo
   mysql> (
   mysql> id int
   mysql> );
Query OK, 0 rows affected (0.53 sec)

将记录插入表中。

mysql> insert into RankDemo values(1);
Query OK, 1 row affected (0.19 sec)

mysql>  insert into RankDemo values(3);
Query OK, 1 row affected (0.12 sec)

mysql>  insert into RankDemo values(3);
Query OK, 1 row affected (0.11 sec)

mysql>  insert into RankDemo values(4);
Query OK, 1 row affected (0.12 sec)

mysql>  insert into RankDemo values(5);
Query OK, 1 row affected (0.17 sec)

使用 SELECT 语句显示表中的所有记录。查询如下 −

mysql> select *from RankDemo;

以下是输出。

+------+
| id   |
+------+
|    1 |
|    3 |
|    3 |
|    4 |
|    5 |
+------+
5 rows in set (0.00 sec)

现在让我们应用我上面讨论过的 rank() 函数。

mysql> SELECT
   mysql> id,RANK() OVER (ORDER BY id ) Ranking
   mysql> from RankDemo;

以下是显示排名的输出。

+------+---------+
| id   | Ranking |
+------+---------+
|    1 |       1 |
|    3 |       2 |
|    3 |       2 |
|    4 |       4 |
|    5 |       5 |
+------+---------+
5 rows in set (0.04 sec)

相关文章