反馈已提交

网络繁忙

您正在浏览的是 FineBI6.1 帮助文档,点击跳转至: FineBI5.1帮助文档

WINDOW窗口函数概述-跨行计算

  • 文档创建者:April陶
  • 历史版本:21
  • 最近更新:April陶 于 2024-09-18
  • 1. 概述

    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-按指定规则排序 函数,支持对字段分组后按指定规则排序。详情见下文。

    1.3 应用场景

    窗口函数能够单独输出字段或和 DEF 函数组合使用。对分析视图的字段进行计算时,窗口函数比使用 EARLIER 函数进行跨行计算更简单、更易理解、性能更优。

    一般场景

    WINDOW 函数基于分析视图进行聚合计算,即依据已生成的组件结果进行计算(不包含明细表)如:

    • 求累计

    • 求组内累计

    • 求近三行移动平均

    • 求分组下近三行移动平均

    嵌套场景

    WINDOW 和 DEF 类函数嵌套使用时,基于 DEF 函数下的独立视图进行计算,这种情况下如果使用的是 DEF 函数(指定维度)可输出明细级别的字段。

    DEF+WINDOW 的嵌套场景下支持在自助数据集和明细表中使用 WINDOW 函数。

    1.4 函数类型

    window函数场景
    WINDOW_SUM-跨行求和/求累计

    比较当前节点和上一节点的转化率

    逐月展示前三个月销售额

    WINDOW_AVG-跨行求平均求移动平均
    WINDOW_MAX-跨行求最大值-
    WINDOW_MIN-跨行求最小值-
    WINDOW_STDEV-跨行求标准差-
    WINDOW_VAR-跨行求方差-
    RANK_AGG-按指定规则排序

    并列排名不占位

    交叉表求横向排名

    2. 使用位置


    使用位置
    自助数据集
    新增公式列
    组件添加计算字段

    注:WINDOW 函数输出的是聚合字段,在自助数据集中不支持直接输出,需要与 DEF 函数组合后输出明细级别字段。

    3. 注意事项

    • WINDOW 基于分析视图进行计算,指标/分组字段/排序字段需要均为聚合性质,且维度字段均需要来源于分析视图 

    • WINDOW 函数输出的是聚合字段,在自助数据集中不支持直接输出,需要与 DEF 函数组合后输出明细级别字段。

    • 如果对于排序要求较高,建议把排序字段和排序方式都依次罗列到 WINDOW 函数中。未指定的字段按照默认顺序计算

    年月累计场景

    由于当前 WINDOW 计算时所使用的字段都是从待分析区进行选择,来对应分析区的字段。而我们分析区又支持日期分组、自定义维度分组。当一个字段被重复拖入分析区并设置多种分组方式时, WINDOW 计算会将字段设置的所有分组都带入计算。

    例如,「合同签约时间」在分析区按「年」分组,然后再次拖入后按「月份」分组。WINDOW 函数计算的「合同签约时间」会按年月分组参与计算。如下图所示:

    2024-08-16_15-09-18.png

    如果我们要求按年分组下,各月的购买数量累计,需要在待分析区域复制「合同签约时间」字段并重命名用于区分不同分组。

    2024-08-16_15-27-08.gif

    在分析区拖入字段「年、月」并依次设置分组。添加计算字段「购买数量组内累计值」,计算对「年」分组后,按月依次累计的购买数量。

    2013 年的购买数量按月依次累计,效果如下图所示:

    2024-08-16_15-28-17.png

    4. 示例

    示例数据:超市销售数据.xlsx

    1)制作分组表,拖入「订单日期、销售额」求不同年月的销售额情况。如下图所示:

    2024-08-16_14-28-55.png

    2)计算近三个月销售额移动平均,如下图所示:

    公式=WINDOW_AVG(SUM_AGG(销售额),[],[订单日期],[-2,0])

    2024-08-16_14-31-58.png

    公式内容
    说明备注
    WINDOW_AVG(SUM_AGG(销售额))销售额跨行求平均

    WINDOW_AVG-跨行求平均

    参数2:[]不对数据进行分组
    参数3:订单日期

    按订单日期(年月)升序

    • 排序字段:订单日期

    • 排序方式:未写排序方式,因此默认升序排列

    不写排序方式默认升序
    参数4:[-2,0]

    获取窗口范围内的数据

    • 窗口上限 -2:依据排列顺序从前两行取数

    • 窗口下限 0:取数取到当前行结束

    按订单日期(年月)顺序获取前两行和当前行数据,求移动平均

    完成后,将字段拖入分组表,并设置数值格式为「万」。如下图所示:

    2024-08-16_14-33-55.png

    附件列表


    主题: 进阶学习
    已经是第一篇
    已经是最后一篇
    • 有帮助
    • 没帮助
    • 只是浏览
    中文(简体)

    鼠标选中内容,快速反馈问题

    鼠标选中存在疑惑的内容,即可快速反馈问题,我们将会跟进处理。

    不再提示

    10s后关闭



    AI

    联系我们
    在线支持
    获取专业技术支持,快速帮助您解决问题
    工作日9:00-12:00,13:30-17:30在线
    页面反馈
    针对当前网页的建议、问题反馈
    售前咨询
    采购需求/获取报价/预约演示
    或拨打: 400-811-8890 转1
    qr
    热线电话
    咨询/故障救援热线:400-811-8890转2
    总裁办24H投诉:17312781526
    提交页面反馈
    仅适用于当前网页的意见收集,帆软产品问题请在 问答板块提问前往服务平台 获取技术支持