页面树结构
转至元数据结尾
转至元数据起始

1 概述

计算列:添加到数据模型表或查询中的一个新列,对每一行都计算值

如果当前分析的数据不包含获取期望结果所需的特定字段,可以使用公式或已封装的函数进行数据加工处理,定义新的列。计算列适用场景如下:

  • 数据补充:计算列可以通过基于表中已有的列进行计算,生成新的列来补充数据。例如,可以根据产品的单价和销售数量计算销售额,并将该计算结果存储在计算列中;
  • 数据转换:计算列可以用于将数据格式化或转换为其他形式。例如,可以将日期时间列分解为年、月、日等部分,并存储在计算列中,以便后续按时间进行分析;
  • 数据筛选:计算列可以用于根据特定条件对数据进行筛选和标记。例如,可以创建一个计算列来标记销售额超过某个阈值的产品。

前置条件

1、计算列是表中新建一列,所以只能针对表或者模型的查询创建,并且只能在单表新建,无法跨表/查询创建。

2、新建列 不支持聚合函数,如果在编辑器中手动输入的聚合表达式比如sum、count、avg等,预览数据或在报表层会报错。

3、新建的计算列字段名称(在表字段属性查看):字段名+(查询名称)。

4、在新建列的的表达式编辑框中,支持解析当前使用数据库支持的函数、语法。

5、目前编辑器只支持英文的标点符号,如果在编写计算字段表达式的时候,中英文引号、逗号和小括号等标点符号混用,可能会导致语法解析出错。

6、已添加的计算列,支持二次引用,比如引用到计算度量计算命名集计算成员

7、如果要把已建的 计算列 作为度量,需要手动标记为度量。

8、报表层支持创建计算列:在报表层创建的计算列只会保存在对应的报表中,不会保存在模型中;如果要保存在模型中供其他报表使用,需在模型中创建;报表层创建计算列详细可参考:透视分析创建计算列

9、在抽取模式创建的计算列需要先抽取才能正常预览数据。


2 示例说明

Smartbi 提供了添加计算列的功能,实现对已存在的字段再计算,从而可以得到新的字段。

2.1 字符串加工

例如:

Jeff 是 货运经理,他想创建一个报表,显示去往不同城市的货运数量,他有包含省份和城市字段的“订单表”。

但是,Jeff 希望他的报表能够将省份和城市值作为单个值显示在同一行,现在,Jeff 的“订单表”中没有所需字段,凭借 计算列,Jeff 可以将来自省份和城市的列组合起来。

具体操作如下:

1、创建数据模型并产品自带的northwind数据库下的 “订单表”、“订单详情表”等加入到模型中

2、在模型中创建 计算列 ,命名为 CityState

选项内容
入口在关系视图中选择 表或查询,右键菜单 新建计算列。
名称给新建列起一个比较符合业务的 名称。
数据格式新建列支持字符串、数值型、日期、时间格式。
表达式编辑器
  • 可以从右侧 字段 区拖入原始字段到编辑器中;鼠标移上去可以查看对应的path路径信息。
  • 可以从右侧 函数 区双击或拖动函数到编辑器;在下方的 函数描述 会自动显示对应函数信息。
  • 支持在编辑器手写"函数",编辑器会自动识别到已存在的函数,在产品中不存在的函数编辑器无法识别,但是绝大部分都能执行; 
  • 表达式函数可查阅:计算列函数
字段区域
  • 默认展开,如果不想或者想要更大的编辑区域,可以点击右侧的 字段 函数 按钮将其收起。
  • 字段区域展示的表或查询原始的字段名称, 可通过 字段区的“搜索” 找到想要的字段。
  • 双击或者鼠标拖拽可把字段拖入到编辑器中。
函数区域
  • 展示的函数: 计算列函数
  • 双击或者鼠标拖拽可把函数拖入到编辑器中。

3、填写好基本信息以及表达式 点击 确定 之后,可以在维度区 对应的表或查询目录下看到新建的计算列CityState,以及预览对应的计算列数据(如果是抽取模式,则需要先 抽取 才能正常预览):

 注意:新建的计算列字段名称:字段名+(查询名称)。

4、构建完模型并保存成功,并去建交互式仪表盘,最终效果如下:

2.2  数值计算加工

例如:

Jeff 是 货运经理,他想创建一个报表,显示不同城市的销售额,他有包含单价、数量的“订单明细表”;现在,Jeff 的“订单明细表”中没有所需字段,凭借 计算列,Jeff 可以将 单价*数量 计算得到原始销售额,再通过汇总得到最终的销售额。

以产品自带的northwind 数据库下的“订单表”、“订单明细表” 等创建“订单模型”。

具体操作步骤如下:

1、创建数据模型,并把”订单表“、”订单明细表“等加入到数据模型中。

2、新建计算列

  • 名称:命名为 “销售额”
  • 数据格式:选择浮点型
  • 编辑器:从右侧 字段区 双击或者鼠标拖入 单价*数量

3、填写好基本信息以及表达式 点击 确定 之后,可以在维度区 对应的表或查询目录下看到新建的计算列,以及预览对应的计算列数据。如果是抽取模式,则需要先 抽取 才能正常预览。

4、再把 销售额 手动 标记为度量,汇总依据 设置为 合计

5、构建完模型并保存成功,并去建交互式仪表盘,最终效果如下:


3 计算列支持的函数

目前计算列除了以下产品封装的函数,还支持当前所在数据源支持的函数:

  • 无标签