窗口函数
窗口函数也称为OLAP(Online Analytical Processing)函数,意思是对数据库数据进行实时分析处理,窗口函数在Oracle和SQL Server 中也被称为分析函数,窗口函数语法如下
<窗口函数> OVER ([PARTITION BY <列清单>]
ORDER BY <排序用列清单> [框架])
语法中<>中的内容不可省略,[]中的内容可以省略。即PARTIION BY和框架可以省略,ORDER BY 不可以省略。框架对汇总范围进行限定。
(ROWS | RANGE) BETWEEN (UNBOUNDED | [num]) PRECEDING AND ([num] PRECEDING | CURRENT ROW | (UNBOUNDED | [num]) FOLLOWING)
(ROWS | RANGE) BETWEEN CURRENT ROW AND (CURRENT ROW | (UNBOUNDED | [num]) FOLLOWING)
(ROWS | RANGE) BETWEEN [num] FOLLOWING AND (UNBOUNDED | [num]) FOLLOWING
窗口函数: 1)可以作为窗口函数的聚合函数。
- SUM :求和
- MIN :最小值
- MAX :最大值
- AVG :平均值
- COUNT :计数
2)专用窗口函数
- RANK :跳跃排序,排序:1,1,3
DENSE_RANK :连续排序,排序:1,1,2
ROW_NUMBER:没有重复值的排序,排序:1,2,3
FIRST_VALUE :返回组中数据窗口的第一个值
LAST_VALUE :返回组中数据窗口的最后一个值。
LAG :LAG(col,n,DEFAULT) 用于统计窗口内往上第n行值。
LEAD :LEAD(col,n,DEFAULT) 用于统计窗口内往下第

本文详细介绍了SQL中的窗口函数,包括其语法、常见的聚合函数如SUM、MIN、MAX、AVG、COUNT以及专用窗口函数RANK、DENSE_RANK、ROW_NUMBER等。通过实例展示了窗口函数在数据计算和分析中的应用,例如累计求和、排序等,并强调了PARTITION BY与GROUP BY的区别。最后总结了窗口函数在数据分析中的重要性和作用。
最低0.47元/天 解锁文章
535

被折叠的 条评论
为什么被折叠?



