sql开窗函数详解
SQL开窗函数(Window Functions)是一种用于在查询结果集中执行聚合、排序和分析操作的强大工具。它们可以在不破坏查询结果集的情况下,对每一行数据进行计算,比如计算行的排名、累计和、移动平均等。以下是SQL开窗函数的一些常用功能和语法:
基本语法:
SELECT column1, column2, ...,
window_function() OVER (PARTITION BY column_partition ORDER BY column_ordering)
FROM table_name;
常用的开窗函数包括:
ROW_NUMBER(): 为每一行分配一个唯一的数字序号。
RANK(): 计算每一行在结果集中的排名,相同值会有相同的排名,但不会有间隔。
DENSE_RANK(): 计算每一行在结果集中的排名,相同值会有相同的排名,但会有间隔。
SUM(), AVG(), COUNT(): 计算窗口中某列的累计和、平均值、计数等。
LAG(), LEAD(): 获取当前行前面或后面某行的值。
PARTITION BY子句用于分组