📜  使用 RANK() 在数据库中添加行的排名位置的 SQL 查询

📅  最后修改于: 2022-05-13 01:54:37.565000             🧑  作者: Mango

使用 RANK() 在数据库中添加行的排名位置的 SQL 查询

在本文中,我们将讨论 SQL函数RANK 的概述,然后我们将主要关注在 SQL 中使用 RANK() 在数据库中添加行的排名位置。让我们一一讨论。

概述 :
通常,当执行 max/min 命令时,会显示一行作为输出。 RANK() 是为了根据表中的某些属性对行进行排名而引入的 SQL函数。根据现有值的记录,RANK函数将帮助列进行相应的排名。

句法 :

RANK() OVER(ORDER BY Any Column)

实现 RANK函数的步骤:
在这里,我们将讨论在 SQL 中实现 RANK函数的步骤。

步骤 1:参考表:
假设一个表格是根据班级学生的分数创建的,其中包含下面显示的数据。



IDNAME

MATHEMATICS

PHYSICS CHEMISTRY 
501Surya

99

97

85

502Sravan

91

98

94

503Charan

99

93

88

504Ram

92



99

92

505Aryan

94

99

88

506Sathwik

91

88

91

507Madhav

90

97

89

步骤 2:创建表:
现在,用于创建表的 SQL 语句如下所示。

CREATE TABLE MarkList
(
id int,
name varchar(20),
mathematics int, 
physics int,
chemistry int
);

步骤 3:插入数据:
在这里,我们将按如下方式将行插入表中。

insert into MarkList values( 501,'Surya',99,97,85);
insert into MarkList values(502,'Charan',99,93,88);
insert into MarkList values(503,'Sravan',91,98,94);
insert into MarkList values(504,'Ram',92,99,82);
insert into MarkList values(505,'Aryan',94,99,88);
insert into MarkList values(506,'Sathwik',91,88,91);
insert into MarkList values(507,'Madhav',90,97,89);

第 4 步:验证和排名数据:
现在,如果我们想要基于数学分数的排名,则查询如下所示。



SELECT id, name, mathematics,
RANK() OVER(ORDER BY Mathematics DESC) 
as 
'Rank' from MarkList;

输出 :
输出如下。

IDNAME

MATHEMATICS

RANK
501Surya

99

1

502Charan

99

1

505Aryan

94

3

504Ram

92

4

506Sathwik

91

5

503Sravan

91

5

507Madhav

90

7

解释 :

  • 当执行 SQL 命令时,该函数检查顺序并将排名分配给相应的行。
  • 然后根据给定的代码显示带有排名的表格。

其他方法:
还有许多其他方法可以用来代替 RANK()。其中一些列在这里。

  • ROW_NUMBER() 只是在排名的位置添加行号。
  • DENSE_RANK() 只是给出下一个数字作为下一个等级。这不取决于其他等级的频率。