1 概述
计算列:即符合当前数据源SQL列定义语法规则的,在已有表中,用已有字段和SQL支持函数构造出的新的列;
有时,数据表中的原始维度和度量并不能满足我们的需求,需要使用公式或函数进行数据加工处理,这是就可以使用计算列。
前置条件
1、计算列是表中新建一列,所以只能针对表或者模型的查询创建,并且只能在单表新建,无法跨表/查询创建。
2、新建列 不支持聚合函数,如果手动输入的聚合表达式,预览数据或在报表层会报错。
3、在新建列的的表达式编辑框中,当前所在数据源支持的函数和列表达式语法都可以使用。
4、您在编写计算字段表达式的时候,中英文引号、逗号和小括号等标点符号混用,导致语法解析出错。只有英文的标点符号作为词法符号出现在SQL表达式中。如果新建列报错,需要首先检查是否引入了中文的符号
5、选择列表中的字段或双击左侧维度或度量树中的节点来插入维字段名到表达式的编辑框中。
6、已添加的计算列,目前支持作为表达式再被使用在其他计算,比如引用到计算度量、计算命名集、计算成员。
7、如果要把计算列作为度量,需要手动标记为度量。
8、报表层支持创建计算列:在报表层创建的向计算列只会保存在对应的报表中,不会保存在模型中;如果要保存在模型中供其他报表使用,需在模型中创建;详细可参考:透视分析创建计算列。
9、计算列,暂不支持参数。
2 示例说明
Smartbi 提供了添加计算列的功能,实现对已存在的字段再计算,从而可以得到新的字段。
2.1 字符串加工
例如::
Jeff 是 货运经理,他想创建一个报表,显示去往不同城市的货运数量,他有包含省份和城市字段的“订单表”。
但是,Jeff 希望他的报表能够将省份和城市值作为单个值显示在同一行,现在,Jeff 的“订单表”中没有所需字段,凭借 计算列,Jeff 可以将来自省份和城市的列组合起来。
具体操作如下:
1、创建数据模型并把 “订单表”、“订单详情表”等加入到模型中
2、在模型中创建 计算列:
选项 | 内容 |
---|---|
入口 | 在关系视图中选择 表或查询,右键菜单 新建计算列。 |
名称 | 给新建列起一个比较符合业务的 名称。 |
数据格式 | 新建列支持字符串、数值型、日期、时间格式。 |
表达式编辑器 |
|
字段区域 |
|
函数区域 |
|
3、填写好基本信息以及表达式 点击 确定 之后,可以在维度区 对应的表或查询目录下看到新建的计算列,以及预览对应的计算列数据:
4、构建完模型并保存成功,并去建交互式仪表盘,最终效果如下: