25个高级SQL查询-基于特定排序标准对行进行排序

本专栏中的许多示例将基于以下员工表(employee)。只有少数例子将以其他表格为基础;在这些情况下,表格将与示例一起进行说明。

一、RANK 函数

RANK()函数是SQL中的窗口函数之一。窗口函数查看部分数据并计算该部分的结果。

RANK()函数根据提供的列为每一行指定一个等级。RANK()包含在SELECT语句中,语法如下:

RANK() OVER (ORDER BY column ASC|DESC)

基本上,你可以向结果集中添加另一列。此列包括基于ORDER BY关键字后指定的顺序的每条记录的排名。这需要指定(1)用于对行进行排序的列,以及(2)顺序应该是升序还是降序。

第一行的排名为1,接下来的行的排名更高。如果任何行在用于排序的列中具有相同的值,则它们的排名相同,此时RANK会跳过指定的数字,也就是若有两行排序的列的值相同,则跳过一个数字,有三个,则跳过两个数字,以此类推。

例如,如果第五行和第六行在所提供的列中具有相同的值,则它们都获得秩5。然后,第七行得到秩7(即,秩6将丢失),例如:

猜你喜欢

转载自blog.csdn.net/wyxtx/article/details/131722008