开窗函数(Window Function)是SQL中的一种强大工具,用于对查询结果集进行分组和排序,并对每个分组内的数据进行聚合操作,例如求和、平均值、最大值、最小值等,同时可以计算每个分组内相对位置和排名等信息。

常见的开窗函数包括:ROW_NUMBER、RANK、DENSE_RANK、NTILE、LAG、LEAD、FIRST_VALUE、LAST_VALUE等。

开窗函数的语法通用格式如下:

<窗口函数> OVER ([PARTITION BY <分组字段>]
                    [ORDER BY <排序字段> [ASC|DESC]]
                    [ROWS <n> PRECEDING|FOLLOWING])

其中,<窗口函数>表示要执行的聚合函数,如SUM、AVG、COUNT等;PARTITION BY表示分组字段;ORDER BY表示排序字段;ROWS表示相对位置,可以指定向前或向后的行数。

例如,使用SUM函数计算每个部门的销售额,并按照销售额降序排列:

SELECT department, SUM(sales) OVER (PARTITION BY department ORDER BY sales DESC) AS total_sales
FROM sales_data;

这里使用了PARTITION BY将结果按照部门进行分组,然后使用SUM函数计算每个部门的销售额,并按照sales字段降序排列。

SQL开窗函数详解:分组、排序和聚合操作

原文地址: https://www.cveoy.top/t/topic/mOdB 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录