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

目录:

1. 概述编辑

1.1 版本

FineBI版本
功能变动
7.0-

1.2 函数简介

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

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

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

指定视图定义: 

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

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

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

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

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

1.3 注意事项

应用范围:指标中心、组件(不包括明细表)

函数范围:函数需要配合 def/window/field_in 使用;不支持在 def_add/def_sub 的维度参数中使用。

维度范围:引用函数中可以声明任何维度表达式

匹配规则:遵循「字段id」一致的规则,即同一个字段即可匹配上。字段设置了「自定义分组」或「时间分组」也能匹配。

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

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

详情请参见文档:动态层级维度成本分析

2.2 动态为WINDOW/DEF引入分析区字段 

前置条件:为保证外部视图是组件分析区,需下方输出的计算字段外面没再嵌套 DEF 函数。

2.2.1 WINDOW函数

应用场景:

例如总销售额场景中,不同角色和分析需求关注的维度不同,需要依据不同的分析需求调整维度,查看总销售额。

角色/场景分析需求维度
cfo
分析地区总销售额省份、城市
进货预测分析商品总销售额大类、产品名称

WINDOW 的分组维度没法动态的随着用户在分析区的调整保持始终正确的逻辑,维度在省份、城市和大类、产品名称间切换时,需更改计算字段。

运用 ADD_DIM 函数后,无需调整计算字段,只需更换维度,即可查看相应的总销售额。

实现思路:                                             

WINDOW_SUM 配合 ADD_DIM 实现组内行间计算,用「一份数据模型」适应不同维度的月累计销售额展示需求

总销售额=WINDOW_SUM(SUM_AGG(总金额),[ADD_DIM()],[SUM_AGG(总金额),"asc"],["first",0])

操作步骤:

1)点击「指标中心」,新建模型,添加资源。具体操作步骤见文档:模型管理概述

2)新建指标「总销售额」,如下图所示:

计算字段:总销售额=WINDOW_SUM(SUM_AGG(总金额),[ADD_DIM()],[SUM_AGG(总金额),"asc"],["first",0])

具体操作步骤见文档:指标管理概述

3)新建维度「大类」「产品名称」「省份」「城市」具体操作步骤见文档:维度管理概述


4)新建指标集,包含指标「总销售额」、维度「大类」「产品名称」「省份」「城市」。具体操作步骤见文档:指标集概述

5)点击「数据目录」,创建分析主题,如下图所示:

效果预览:

「省份」「城市」「总销售额」拖入分析区,完成分析。如下图所示:

维度切换:例如切换「省份」「城市」为「大类」「产品名称」,会自动展示每个产品的总销售额,如下图所示:

2.2.2 DEF函数

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