最新历史版本 :ADD_DIM(引用维度+指定维度) 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

目录:

1. 概述编辑

1.1 版本

FineBI版本
功能变动
7.0-

1.2 函数简介

函数返回指定视图与函数声明中的关联维度集合,支持绑定动态维度机制。

语法
ADD_DIM(维度字段1,维度字段2...)

返回指定视图与函数声明中的全部维

指定视图定义: 

  • 使用在 DEF 维度参数中,指定为外部视图

  • 使用在其他场景下,指定为当前所在视图

参数维度字段1,维度字段2...

支持书写多个维度表达式,表达式之间通过“,”进行区分

参数可以为空,为空则输出指定视图的全部维度 

1.3 注意事项

函数需要配合 def/window/field_in 使用。

1.4 视图概念

视图不是物理存储的数据表,而是通过 SQL 查询、数据模型或业务规则定义的 “虚拟表”。它动态映射底层数据源(如数据库表、 Excel 文件等),仅保存查询逻辑而非数据本身。为可视化分析提供可直接调用的标准化业务语义数据表。

视图与物理表的对比

特性
视图物理表
存储方式仅保存查询逻辑,动态生成数据实际存储数据
更新频率实时/定时刷新静态,需手动导入 BI 或 ETL
灵活性易修改,不影响底层数据修改需重建表或迁移数据
性能依赖底层查询优化直接读取,通常更快

「1.2 函数简介」中提到的视图为计算视图,可以理解为计算中生成的虚拟结果表。我们目前有三种视图:

  • 明细视图:可以理解为新增列计算场景,计算后结果粒度与明细表相同



  • DEF视图:由 def 函数构造出来的独立视图,计算后结果粒度与 def 中声明的维度一致

例如,求 1 月各地区下部门的成本额 = DEF(SUM_AGG(成本),[地区,部门],[月份="2025-01"]

FineBI 无法直接查看 DEF 计算视图,虚拟表效果如下:


  • 分析视图:根据分析区汇总计算后的视图,计算后结果粒度与分析区的维度一致

组件中除了「明细表」其他图表都是构建的分析视图。

2. 示例编辑

2.1 智能层级成本分析

应用场景:

如何在企业用「一份数据模型」适应不同分析层级的成本展示需求,无需切换数据源或计算字段。实现钻取查看从公司到个人层级的成本情况?

用户角色分析需求关注指标
CFO/财务总监/部门经理

查看公司各区域、部门的人力成本情况

公司成本 
= 员工薪资及福利 + 办公场地租赁 + 设备折旧等
人力资源分析师查看每员工的个人成本,分析个人效益比个人成本
= 员工个人的薪资及福利


实现思路:

配合 FIELD_IN() 函数动态的判断分析区是否引入了某维度。如果分析区拖入了「员工姓名」维度,则函数计算中使用「个人成本」,不然则使用「公司成本」。

1)构建从公司到个人层级的 钻取目录 ,并用分组表分析,在分析区拖入「月份」和钻取目录字段,并设置「月份」按「年月」分组。如下图所示:

2)添加计算字段,计算动态成本字段。如下图所示:

成本额=IF(FIELD_IN(ADD_DIM(), [员工姓名]), 个人成本, 公司成本)

步骤
公式说明
获取分析区域全部字段ADD_DIM()

函数获取外部视图所有字段

字段使用在分组表中,因此外部视图为分组表,获取分析区域的所有字段

判断分析区字段是否包含员工姓名FIELD_IN(ADD_DIM(), [员工姓名])包含「员工姓名」,返回true,否则为false
如果包含则输出「个人成本」,否则输出「公司成本」IF(FIELD_IN(ADD_DIM(), [员工姓名]), 个人成本, 公司成本)用 IF 函数对 FIELD_IN 返回结果赋值
将「成本额」拖入分析区,完成分析,可查看每个月公司到个人层级的成本情况。如下图所示:

95DC0226-CEEB-46F1-9554-AC8676F3A192.GIF

 2.2 动态的为window/def引入分析区字段 

window_sum(sum_agg(销售额),[add_dim()]) 

def(sum_agg(销售额),[add_dim()])