🔍 开窗函数是SQL中一种强大的工具,它允许我们在不改变原始结果集的情况下,进行额外的计算和聚合操作。
📊 窗口定义了开窗函数计算的范围,可以通过PARTITION BY子句将数据分组,并在每个分组上应用开窗函数。还可以使用ORDER BY子句对分组内的数据进行排序。
📈 常见的窗口函数包括ROW_NUMBER()、RANK()、DENSE_RANK()、LEAD()、LAG()、SUM()、AVG()、MIN()和MAX()等。这些函数可以在指定的窗口内进行计算,保留原始行数。
📖 通过OVER关键字,我们可以定义窗口函数的操作窗口。可选的PARTITION BY子句允许我们将结果集分成分区,并在每个分区内独立地进行计算。而ORDER BY子句则用来指定数据行的排序顺序,对于像ROW_NUMBER()这样的函数至关重要。
🔢 frame_clause子句定义了窗口的具体范围,可以通过ROWS BETWEEN或RANGE BETWEEN子句来指定当前行考虑的行的范围。
转载自:https://cloud.tencent.com/developer/article/2072312