迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 数据库 > MySQL >

MySQL 中的 rank 函数

作者:迹忆客 最近更新:2024/03/25 浏览次数:

在本教程中,我们将介绍如何在 MySQL 中使用 rank 函数。

MySQL 有许多窗口函数。其中之一是 MySQL 中的 rank 函数。

许多组织和企业都有这样的要求,即他们需要根据特定条件对行中的数据进行排名。rank 函数可用于完成此操作。

例如,在课堂上,如果老师决定根据学生按学科分类的分数对学生进行排名,他们可以使用 MySQL 中的 rank 函数。此功能可以根据学生的表现对学生进行单独排名,以进行数据分析。


使用 Rank 函数对 MySQL 中的数据进行排名

让我们了解这个功能是如何工作的。

在开始之前,我们创建一个虚拟数据集来使用。在这里,我们创建了一个表 person 和几行。

CREATE TABLE person (id int, first_name varchar(20), age int, gender char(1));

-- insert rows to the table student_details
INSERT INTO person VALUES (1, 'Bob', 25, 'M'),
(2, 'Jane', 20, 'F'),
(3, 'Jack', 30, 'M'),
(4, 'Bill', 32, 'M'),
(5, 'Nick', 22, 'M'),
(6, 'Kathy', 18, 'F'),
(7, 'Steve', 36, 'M'),
(8, 'Anne', 25, 'F'),
(9, 'Kamal', 25, 'M'),
(10, 'Saman', 32, 'M');

要查看数据中的条目,我们使用以下代码。

SELECT * FROM person;

上面的代码将给出以下输出。

id	first_name  	age 	gender
1	Bob				25		M
2	Jane			20		F
3	Jack			30		M
4	Bill			32		M
5	Nick			22		M
6	Kathy			18		F
7	Steve			36		M
8	Anne			25		F
9	Kamal			25		M
10	Saman			32		M

建好表后,我们可以对数据进行如下排序。

让我们通过根据年龄对他们进行排序并根据他们的性别对他们进行分区来对数据集中的人进行排名。可以使用以下查询来完成此操作。

SELECT RANK() OVER (Partition by Gender ORDER BY Age) AS `Partition by Gender`,
  first_name as name,
  Age,
  Gender
FROM person;

在查询中,名为 person 的表将帮助我们对数据进行排序,以便所有人按性别分区并按年龄升序排列。

查询的输出如下所示。

id	name  	age 	gender
1	Kathy	18		F
2	Jane	20		F
3	Anne	25		F
1	Nick	22		M
2	Bob		25		M
2	Kamal	25		M
4	Jack	30		M
5	Bill	32		M
5	Saman	32		M
7	Steve	36		M

正如我们在上面看到的,数据按年龄排序并根据性别进行隔离。

我们在 MySQL 中使用带有 AS 关键字的别名 name 来增加程序的可读性。

因此,在 RANK 函数和 Partition by 子句的帮助下,我们可以有效地对数据进行排序,并根据我们在 MySQL 中的需要对它们进行排序。

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

MySQL 函数

发布时间:2024/03/25 浏览次数:74 分类:MySQL

本文介绍如何在 MySQL 中使用和创建一个简单的函数。

MySQL with 子句

发布时间:2024/03/25 浏览次数:79 分类:MySQL

本教程教你 MySQL with 子句。它还指导你在何处以及如何使用 MySQL With 子句

MySQL Tinytext

发布时间:2024/03/25 浏览次数:109 分类:MySQL

本文介绍了如何在 MySQL 中使用不同的数据类型。

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便