WINDOW窗口函数概述-跨行计算
1.1 版本FineBI版本功能变动6.1.2-
1.2 功能简介WINDOW 窗口函数常用于行间计算的场景,在对数据进行分组、排序后,对窗口上下限内的数据进行计算。
语法WINDOW_汇总方式(聚合方式(指标) ,[分组字段1, 分组字段2.... ],[排序字段1,排序方式,排序字段2, 排序方式...],[窗口上限,窗口下限])
参数窗口函数基于「分析视图」进行计算,函数内的指标/分组字段/排序字段需要均为聚合性质,且维度字段均需要来源于分析视图
参数说明指标不可为空分组字段缺省则不按照任何字段分组 排序字段缺省则按照默认顺序计算排序方式支持 "asc"、"desc" 两个关键词,分别对应升序和降序排序,如缺省需要缺省所有排序方式,缺省则按照排序字段升序进行计算窗口上限/下限支持 "first"、"last" ,分别代表组内第一行/组内最后一行;
支持数值常量,0代表当前行,-n代表当前行的前n行,n代表当前行的后n行
缺省则按照["first","last"]使用组内全部计算
返回值返回窗口中的所有行,对行内的指标依据「汇总方式」进行计算。
注:不同的 WINDOW 函数对应不同的汇总方式,汇总方式包括「求和,平均,最大值,最小值,标准差,方差」。除此以外,窗口函数还有 RANK_AGG-按指定规则排序 函数,支持对字段分组后按指定规则排序。详情见下文。
函数类型window函数场景WINDOW_SUM-跨行求和/求累计比较当前节点和上一节点的转化率
逐月展示前三个月销售额
WINDOW_AVG-跨行求平均求移动平均WINDOW_MAX-跨行求最大值-WINDOW_MIN-跨行求最小值-WINDOW_STDEV-跨行求标准差-WINDOW_VAR-跨行求方差-RANK_AGG-按指定规则排序并列排名不占位
交叉表求横向排名
说明WINDOW 窗口函数不同汇总方式,可通过写不同公式控制窗口上下限内的数据进行计算。
注:每个单元格计算的窗口上下限的定义不一定相同。
类型数值WINDOW_SUM -求和WINDOW_AVG-求平均WINDOW_MAX-求最大值WINDOW_MIN-求最小值A1050 =(B+C)25 =(B+C)/230 =MAX(B+C)20 =MIN(B+C)B2060 =(A+B+C)20 =(A+B+C)/330 =MAX(A+B+C)10 =MIN(A+B+C)C3060 =(A+B+C)20 =(A+B+C)/330 =MAX(A+B+C)10 =MIN(A+B+C)D4060 =(A+B+C)20 =(A+B+C)/330 =MAX(A+B+C)10 =MIN(A+B+C)E50140 =(B+C+D+E)35 =(B+C+D+E)/450 =MAX(B+C+D+E)20 =MIN(B+C+D+E)F60120 =(C+D+E)40 =(C+D+E)/360 =MAX(C+D+E)30 =MIN(C+D+E)1.3 应用场景窗口函数能够单独输出字段或和 DEF 函数组合使用。对分析视图的字段进行计算时,窗口函数比使用 EARLIER 函数进行跨行计算更简单、更易理解、性能更优。
一般场景
WINDOW 函数基于分析视图进行聚合计算,即依据已生成的组件结果进行计算(不包含明细表)如:
求累计
求组内累计
求近三行移动平均
求分组下近三行移动平均
嵌套场景
当 WINDOW 和 DEF 类函数嵌套使用时,基于 DEF 函数下的独立视图进行计算,这种情况下如果使用的是 DEF 函数(指定维度)可输出明细级别的字段。
DEF+WINDOW 的嵌套场景下支持在自助数据集和明细表中使用 WINDOW 函数。