使用 RANK()添加数据库中行的排名位置的 SQL 查询
原文:https://www . geesforgeks . org/SQL-查询-添加-排名-带排名的数据库中的行位置/
在本文中,我们将讨论 SQL 函数 RANK 的概述,然后我们的主要焦点将是在 SQL 中使用 RANK()添加数据库中行的排名位置。我们一个一个来讨论。
概述: 一般来说,执行 max/min 命令时,会显示一行作为输出。RANK()是为了根据表中的某个属性对行进行排序而引入的一个 SQL 函数。基于现有值的记录,RANK 函数将帮助相应地对列进行排序。
语法:
RANK() OVER(ORDER BY Any Column)
实现 RANK 函数的步骤: 这里,我们将讨论在 SQL 中实现 RANK 函数的步骤。
步骤-1:参考表: 考虑一个基于班级中学生的分数创建的表,该表包含下面显示的数据。
T22T25】SuryaT34】85 T81】99T89】505 | 身份证明 | 名字 | MATHEMATICS | 物理学 | 化学 | | --- | --- | --- | --- | --- | | Five hundred and one | 99T30 | Ninety-seven | 88 | | Five hundred and four | 随机存取存储器(random access memory 的缩写)ˌ随机访问内存(random-access memory 的缩写) | T78】92 | 92 | | 雅利安 |第 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;
输出: 输出如下。
| 【id】 | 【 name 】 | 【数学】 | ranking | 【92】 | | 【506】 | | | --- | --- | --- | --- | --- | --- |说明:
- 当执行 SQL 命令时,该函数检查顺序,并将等级分配给相应的行。
- 然后根据给定的代码显示带有等级的表格。
其他方法: 还有很多其他方法可以代替 RANK()。这里列出了其中的一些。
- ROW_NUMBER()只是在排名的位置加上行号。
- DENSE_RANK()只是给出下一个数字作为下一个等级。这不取决于其他级别的频率。
版权属于:月萌API www.moonapi.com,转载请注明出处