SQL函数 - 开窗(窗口)函数

窗口函数不依赖于 GROUP BY。
语法:函数名+OVER(partition by [order by])。
分区:对数据进行分组。
排序:在每个组内排序。
返回:同时返回基列和计算结果。
类型:排序函数和聚合函数。
排序函数:ROW_NUMBER()、RANK()、DENSE_RANK()、NTILE(n)。
聚合函数:SUM()、COUNT()、MIN()、MAX()、AVG()。
场景:排名、求和、最大值等。
示例:按成绩和科目分组、计算排名或总和。
范围定义:ROWS 或 RANGE。
兼容:MySQL 8 .0+、SQL Server、Hive、Oracle。
简化查询。

带您使用SNB理解序列分析的SQL窗口函数 (Lead、Lag)及示例

一文搞懂SQL中的开窗函数

结论: 1 . SQL窗口函数分为两类:聚合和排序。
2 . SUM()、COUNT()等聚合窗口函数与OVER子句结合,实现分组计算。
3 . PARTITIONBY分组、ORDERBY排序、全局聚合无需分区排序。
4 . 示例:SUM(Salary)OVER(PARTITIONBYGroupname) 按部门对总工资进行分组。
5 、使用ROW_NUMBER()、RANK()等窗口排序函数进行排序。
6 、ROW_NUMBER()有唯一的序号,RANK()有相同的值和排名,DENSE_RANK()有连续的排名。
7 . NTILE(n)数据组与NTILE(2 )一样,分为两组。
8 .高级应用:LEAD()、LAG()、FIRST_VALUE()等。
9 . 窗口函数提高查询效率,是数据分析的关键技能。