覆盖主要内容
版本: 下个版本

计算字段概述

计算字段可以方便用户做一些基础数据处理和转换。

点击数据可视化探索编辑器左侧区域“字段”旁边的下拉菜单图标,然后选择“创建计算字段”选项,弹出编辑框。输入字段名称和计算公式,然后保存即可。 其中名称不可以跟已有的字段名称重复。

计算字段编辑器分为三部分。

  • 左侧字段列表。单击任一字段可以将字段名称添加到公式中。

  • 中间计算字段编辑器,可以编辑计算字段名称和计算公式。

  • 右侧为函数列表。可以查看各函数的介绍和示例,双击任一函数可以将函数名称添加到公式中。

对运算符的支持

按优先级由高到低排列:

运算符描述
()括号拥有最高的优先级
NOT逻辑取反
OR逻辑或
AND逻辑与
=,<,<=,>,>=,!=比较运算符
+,-数学运算符
*,/,%数学运算符

计算字段类型和错误提示

计算字段有四种类型:日期、数值、字符串、布尔值。 计算字段的类型会从用户输入的计算公式中自动推导出来,如果计算公式含有错误,则会将错误显示在计算字段编辑器的下方。用户修改公式和字段名称都会触发计算字段的错误检查功能,所以需要等待错误检查通过才能进行保存操作

计算字段嵌套

用户可以在一个计算字段中引用另一个计算字段,这样可以将复杂的计算公式拆分成多个小一些的计算字段,然后再拼装起来。 计算字段在使用上和普通字段一致,使用方括号包裹起来,如[计算字段1]

函数表达式

函数表达式是整个计算字段最基础的功能,我们提供的函数分为数字、字符串、日期、逻辑、类型转换、聚合和表计算等类型。通过这些函数的组合,可以实现丰富和强大的功能。 通过函数名称(参数列表)  的形式使用函数表达式,函数可以嵌套使用。 各函数的说明,请在计算字段编辑器中查看。

IF 表达式和 CASE 表达式

条件判断语句和分支语句是现代编程语言的基础功能,用于实现对数据的控制功能。

  • IF 表达式判断参数是否为真,若真则执行紧跟其后的分支,否则执行另外一个分支。 例如:IF [销售额] > 1000 THEN ‘业绩良好’ ELSE ‘业绩不达标’ END。使用形式: IF <布尔表达式> THEN <表达式> [ ELSEIF <布尔表达式> ] [ ELSE <表达式> ] END 注意这里的尖括号代表一个具体的表达式,方括号代表该语句可选。计算公式的类型由各<表达式>的类型决定,各<表达式>的类型要一致。比如上面的例子,’业绩良好’ 和 ’业绩不达标’ 都是字符串类型,所以计算公式的类型是字符串,但是不能一个表达式是字符串,另一个是数字。

  • CASE 表达式的使用形式: CASE <input*表达式> WHEN <when*表达式> THEN <result*表达式> […n] [ ELSE <result*表达式> ] END 注意这里的[…n]代表该行的表达式可以出现 1 到 n 次。 同 IF 一样,计算公式的类型由 <result_表达式> 决定。CASE 语句可以方便比较多个分支,对于一些总类有限的数据的类型转换会很有帮助,列如:CASE [类别] WHEN ‘办公用品’ THEN 2 WHEN ‘技术’ THEN 1 ELSE 0 END。

字符串和日期的表示

字符串使用单引号或双引号包裹起来,如 ’优联博睿’ 或 ”优联博睿” ,日期使用#号包裹起来,如 #2018-12-21# 。 支持的日期格式有:

  1. yyyy-MM-dd HH:mm:ss,如:#2018-12-21 11:12:24#
  2. yyyy-MM-dd,如:#2018-12-21#
  3. HH:mm:ss,如:#11:12:24#

日期间隔类型 DATE_PART

在使用,DATEADD(日期加上一段时间)、DATEDIFF(日期相减)、DATEPART(提取日期的一部分,如年月日)等函数时,会使用到一个字符串常量,也就是 date_part,可使用的有效值为:

DATE_PART
‘year’四位数年份
‘quarter’季度,1-4
‘month’月,1-12
‘week’周,1-52
‘day’日,1-31
‘hour’时,0-23
‘minute’分,0-59
‘second’秒,0-59

日期格式化参数

DATEFORMAT 函数能够格式化日期,要注意该函数返回的结果是字符串。其格式化字符串支持的模板参数有:

参数说明
yyyy4 位数年份,如 2018
yy2 位数年份,如 18
mm月,1-12
mon月,(January,December 等)
dd天,1-31
hh时,12 小时制
hh24时,24 小时制
mi分,0-59
ss秒,0-59
ww周,1-53

例:DATEFORMAT(#2018-12-22#,’ww’)的结果为 51,即 2018-12-22 所在的周为本年第 51 周。

注意事项

  • “+”运算符不能连接字符串,请使用 CONCAT 函数来连接字符串。
  • 应避免两个计算字段互相引用。
  • 布尔值有 true 和 false,注意是小写形式。
  • 可以使用 null 表示空值。
  • 函数名称不区分大小写,字段名称区分大小写。函数 RANK 和 rank 是同一个函数,但是 [sales] 和 [SALES] 不是同一个字段。
  • 在使用 - 运算符时,如果后面是数字,务必要使用空格隔开,否则将表示一个负数。
  • 对于多表连接的字段,需要在字段名称后面加上表名,中间使用空格隔开,表名使用括号包围起来,如 [计算字段名称 (表名)]。