在 SQL 中,窗口函数(Window Functions)是一类特殊的函数,它们可以用于在查询结果集中的窗口(例如某个特定行的邻近行)上执行计算。窗口函数可以使用 OVER 子句定义窗口,并在窗口范围内执行计算。常见的窗口函数包括:
-
ROW_NUMBER():为结果集中的行分配一个唯一的序号,通常配合 ORDER BY 在排序后的结果集中使用。
-
RANK():计算结果集中每行数据的排名,相同数值的行会得到相同的排名,略过后续排名。
-
DENSE_RANK():与 RANK() 类似,不过不会略过后续排名,而是在相同数值的行之后继续排名。
-
NTILE():将结果集划分为指定数量的桶(或称作瓜分),并为每一行分配一个对应的桶号。
-
LAG():用于获取结果集中当前行之前的某一行的值。
-
LEAD():用于获取结果集中当前行之后的某一行的值。