SQL中有三种常见的开窗函数,它们分别是ROW_NUMBER、RANK和DENSE_RANK,它们的区别如下:

  1. ROW_NUMBER: ROW_NUMBER函数为每一行返回一个唯一的整数值,按照指定的排序顺序对结果集进行编号。如果有多个行具有相同的排序值,则它们将分配不同的行号。例如,如果有两个行具有相同的排序值,那么一个行的行号可能是1,而另一个行的行号可能是2。

  2. RANK: RANK函数为具有相同排序值的行分配相同的排名,而对于下一个不同的排序值,将跳过排名。例如,如果有两个行具有相同的排序值,并且排名为1,那么下一个不同的排序值将分配排名为3,而不是2。

  3. DENSE_RANK: DENSE_RANK函数为具有相同排序值的行分配相同的排名,而对于下一个不同的排序值,将分配连续的排名。例如,如果有两个行具有相同的排序值,并且排名为1,那么下一个不同的排序值将分配排名为2,而不是3。

总结起来,ROW_NUMBER是按照排序顺序分配唯一的行号,RANK是按照排序顺序分配排名,而DENSE_RANK是按照排序顺序分配连续的排名。

sql三种开窗的区别

原文地址: https://www.cveoy.top/t/topic/ijxC 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录