以下是 SQL 面试中窗口函数可能考察的重点内容,以及如何准备:
1. 窗口函数的基础知识
-
什么是窗口函数?
-
窗口函数是一种在特定窗口(即一组行)上执行计算的函数,不会改变原始表的行数。
-
常见的窗口函数包括:
ROW_NUMBER()
、RANK()
、DENSE_RANK()
、SUM()
、AVG()
、LEAD()
、LAG()
等。
-
-
窗口函数与普通聚合函数的区别?
-
普通聚合函数(如
SUM()
、AVG()
)会将多行数据聚合为一行。 -
窗口函数不会改变行数,而是为每一行返回一个计算结果。
-
-
窗口函数的语法结构:
FUNCTION_NAME() OVER ( PARTITION BY column1, column2, ... ORDER BY column3, column4, ... ROWS/RANGE BETWEEN ... AND ... )
-
PARTITION BY
:定义窗口的分组规则。 -
ORDER BY
:定义窗口内的排序规则。
-