MySQL 中的 rank 函数
在本教程中,我们将介绍如何在 MySQL 中使用 rank
函数。
MySQL 有许多窗口函数。其中之一是 MySQL 中的 rank
函数。
许多组织和企业都有这样的要求,即他们需要根据特定条件对行中的数据进行排名。rank
函数可用于完成此操作。
例如,在课堂上,如果老师决定根据学生按学科分类的分数对学生进行排名,他们可以使用 MySQL 中的 rank
函数。此功能可以根据学生的表现对学生进行单独排名,以进行数据分析。
使用 Rank
函数对 MySQL 中的数据进行排名
让我们了解这个功能是如何工作的。
在开始之前,我们创建一个虚拟数据集来使用。在这里,我们创建了一个表 person
和几行。
CREATETABLEperson(idint,first_namevarchar(20),ageint,genderchar(1));-- insert rows to the table student_details
INSERTINTOpersonVALUES(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*FROMperson;
上面的代码将给出以下输出。
idfirst_nameagegender1Bob25M2Jane20F3Jack30M4Bill32M5Nick22M6Kathy18F7Steve36M8Anne25F9Kamal25M10Saman32M
建好表后,我们可以对数据进行如下排序。
让我们通过根据年龄对他们进行排序并根据他们的性别对他们进行分区来对数据集中的人进行排名。可以使用以下查询来完成此操作。
SELECTRANK()OVER(PartitionbyGenderORDERBYAge)AS`PartitionbyGender`,first_nameasname,Age,GenderFROMperson;
在查询中,名为 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 中的需要对它们进行排序。
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布,任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站。本站所有源码与软件均为原作者提供,仅供学习和研究使用。如您对本站的相关版权有任何异议,或者认为侵犯了您的合法权益,请及时通知我们处理。