📜  SQL Server 中的 RANK()函数

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

SQL Server 中的 RANK()函数

RANK()函数是一个窗口函数,可在 SQL Server 中用于计算结果集分区内每一行的排名。

相同的等级分配给分区中具有相同值的行。第一行的排名为 1。在RANK()函数中排名可能不连续,因为它将重复行数与重复排名相加来计算下一行的排名。

句法 :

RANK() OVER (
   [PARTITION BY expression, ]
   ORDER BY expression (ASC | DESC) );

例子 -
让我们创建一个只有列 Name 的表 geek_demo :

CREATE TABLE geek_demo (Name VARCHAR(10) );

现在,在 sales.rank_demo 表中插入一些行:
插入 geek_demo(名称)

VALUES('A'), ('B'), ('B'), ('C'), ('C'), ('D'), ('E');

从 geek_demo 表中选择数据:

SELECT * 
FROM sales.geek_demo; 

Name
A
B
B
C
C
D
E

让我们使用 RANK() 为 geek_demo 表的结果集中的行分配排名:

SELECT Name, 
RANK () OVER (
ORDER BY Name
) AS Rank_no 
FROM geek_demo;

输出 -

NameRank_no
A1
B2
B2
C4
C4
D6
E7