SQL开窗函数详解:分组、排序和聚合操作
开窗函数(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字段降序排列。
原文地址: https://www.cveoy.top/t/topic/mOdB 著作权归作者所有。请勿转载和采集!