窗口函数与聚集函数不同的是,聚集函数一组只能返回一行,而窗口函数每组可以返回多行,组内每一行都是基于窗口的逻辑计算的结果。因此,在执行含有 WINDOW FUNCTION 的 SQL 时 (格式一般为 ),都会在生成执行计划的时候分配一个 WINDOW FUNCTION 算子。

    示例:含 WINDOW FUNCTION 算子的执行计划

    其中,窗口函数中指定了一个 ORDER BY/PARTITION BY 的时候,会在下层分配一个 SORT 算子,将排序结果返回给窗口函数算子使用。

    上述示例中,Q1 查询的执行计划展示中的 outputs & filters 详细列出了 WINDOW FUNCTION 算子的输出信息如下: