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;
名称 |
---|
A |
B |
B |
C |
C |
D |
E |
让我们使用RANK()为geek_demo表的结果集中的行分配等级:
SELECT Name, RANK () OVER ( ORDER BY Name ) AS Rank_no FROM geek_demo;
输出-
名称 | Rank_no |
---|---|
A | 1 |
B | 2 |
B | 2 |
C | 4 |
C | 4 |
D | 6 |
E | 7 |
相关用法
- SQL Server STUFF()用法及代码示例
- SQL Server SIN()、COS()用法及代码示例
- SQL Server NTILE()用法及代码示例
- SQL Server STR()用法及代码示例
- SQL Server UNICODE()用法及代码示例
- SQL Server SUBSTRING()用法及代码示例
- SQL Server RTRIM()用法及代码示例
- SQL Server FLOOR()、CEILING()用法及代码示例
- SQL Server TAN()、COT()用法及代码示例
- SQL Server DEGREES()、RADIANS()用法及代码示例
- SQL Server ATN2()用法及代码示例
- SQL Server LOG10()用法及代码示例
- SQL Server LOG()用法及代码示例
- SQL Server ASCII()用法及代码示例
- SQL Server DIFFERENCE()用法及代码示例
- SQL Server IIF()用法及代码示例
注:本文由纯净天空筛选整理自khushboogoyal499大神的英文原创作品 RANK() Function in SQL Server。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。