计算列配置

功能概述

数据表中,如果某列数据是根据已有列的数据计算而来,则该列为计算列。通过配置计算列可高效扩展表格数据内容,灵活支持有关业务场景的需求。如下学生成绩表,表中已有学生的语文、数学和英语成绩,若需要新增一列为“总分”,则可通过配置计算列完成。

学生姓名

语文成绩

数学成绩

英语成绩

张三

88

86

87

李四

91

93

95

计算列配置思路:总分=语文成绩+数学成绩+英语成绩。完成计算列配置后即可得新表:

学生姓名

语文成绩

数学成绩

英语成绩

总分

张三

88

86

87

261

李四

91

93

95

279

功能入口

  1. 进入有关机器人空间后,选择知识中心>数据问答>数据表管理,进入数据表格管理界面;

  2. 点击需要新增计算列表格右侧的编辑按钮,进入具体表格编辑界面;

  3. 进入表格编辑界面后,点击新增计算列按钮即可进行计算列的新增。

image

image

计算列配置规则

配置内容

新增计算列时,需要配置以下内容:

  • 英文字段名:若数据源为数据库,即数据库中的字段名称;若数据源为表格文件,指根据表格模板填写的英文字段名称或系统根据表格文件翻译的英文名称。

  • 字段业务含义:是对字段所表示的含义进行解释,将直接影响召回信息,对问答效果有影响,建议根据字段含义认真填写。

  • 字段类型/输出格式:字段在机器人回复答案中的输出格式。当前支持的字段类型有:

    • 数字范围型格式:第一个数字必须小于第二个数字,必须为数字或者小数,不支持千分位数字;示例[10000, 20000]。

    • 数字数组型格式:必须为数字或者小数,不支持千分位数字;示例[3000, 10000, 20000]。

    • 日期范围型格式:第一个日期必须小于第二个日期,日期格式为"yyyy-MM-dd"或者"yyyy-MM-dd HH:mm:ss",对同一个字段,两种格式不能同时存在;示例:["2023-11-01 00:00:00", "2023-11-11 00:00:00"]。

    • 日期范数组格式:日期格式为"yyyy-MM-dd"或者"yyyy-MM-dd HH:mm:ss",对同一个字段,两种格式不能同时存在;示例["2023-11-01", "2023-11-11", "2023-10-22"]。

    • 文本数组型格式:所有元素必须为文本,并使用双引号括起来;示例["性能卓越", "稳定可靠", "即开即用","弹性扩展"]。

  • 字段描述:是对表头字段所表示的含义、用途注意事项等内容进行解释,该项对问答有影响,建议认真填写;

  • 字段表达式:支持使用系统提供的函数和基础的四则运算配置新增字段的表达式,配置完成后可以在“数据预览”核对数据是否正确。

image

支持的函数

当前列计算支持使用系统内置函数基础的四则运算配置新增字段的表达式。

系统内置函数

  • SUM函数

    • 用法:SUM(expr)

    • 说明:对参数表达式的值进行求和。

    • 示例:SUM(order_amt)

    • 参数参数的类型必须为数值。

  • MAX函数

    • 用法:MAX(expr)

    • 说明:返回单个表达式在所有记录间的最大值,文本型返回文本的ASCII码的最大值。

    • 示例:MAX(order_amt)

    • 参数:参数的类型可以是数值型、文本型和时间型,若为文本型,返回文本的ASCII码的最大值。

  • AVG函数

    • 用法:AVG(expr)

    • 说明:对参数表达式的值求平均,返回数值

    • 示例:AVG(order_amt)

    • 参数:参数的类型必须为数值

  • COUNT函数

    • 用法:COUNT(expr)

    • 说明:对参数表达式进行计数

    • 示例:COUNT(shop_id)

    • 参数:参数的类型可为任意类型

  • DATEDIFF函数

    • 用法:DATEDIFF(end_date, start_date)

    • 说明:返回start_date与end_date之间相隔的天数,若end_date早于start_date,则返回负数。

    • 示例:DATEDIFF(发货日期, 下单日期),计算发货日期与下单日期的间隔天数。

    • 参数:

      • end_date:数据集的日期型字段,必须与start_date的类型保持一致;

      • start_date:数据集的日期型字段,必须与end_date的类型保持一致。

  • CASE WHEN函数

    • 用法:

      CASE WHEN condition1 THEN value1

      WHEN condition2 THEN value2

      WHEN condition3 THEN value3

      ELSE value4

      END

    • 说明:返回满足条件(condition)的结果(value)

      1. condition必须是一个完整的逻辑判断表达式,即:表达式、比较操作符、比较值三个完整组成部分,正确示例 a+b>8,City="北京",(A > B)=TRUE;

      2. condition必须同时使用聚合函数或者同时不使用;

      3. 若condition与value都共同引用了变量,则二者必须同时使用聚合函数或者同时不使用;

      4. 所有value的返回类型必须一致,比如全都是数字或者文本;

    • 示例:

      • 正确示例:对用户进行分组

        CASE WHEN COUNTD(order_id)>3 THEN '支付活跃用户'

        WHEN COUNTD(order_id)>0 AND COUNTD(pay_no)<3 THEN '一般支付活跃用户'

        WHEN COUNTD(order_id)=0 THEN '潜在支付用户'

        END

      • 错误示例1:value的返回类型不一致

        CASE WHEN COUNTD(pay_no)>3 THEN 1

        WHEN COUNTD(pay_no)>0 AND COUNTD(pay_no)<3 THEN '0'

        WHEN COUNTD(pay_no)=0 THEN '潜在用户'

        END

      • 错误示例2:部分condition使用了聚合,部分没有使用聚合

        CASE WHEN COUNTD(pay_no)>3 THEN '活跃用户'

        WHEN pay_no>0 AND pay_no<3 THEN '普通用户'

        WHEN COUNTD(pay_no)=0 THEN '潜在用户'

        END

基础的四则运算

  • 加法:

    • 加法运算符:+

    • 示例:a+b

  • 减法:

    • 减法运算符:-

    • 示例:a-b

  • 乘法:

    • 乘法运算符:*

    • 示例:a*b

  • 除法:

    • 除法运算符:/

    • 示例:a/b

计算列表达式配置示例

使用四则运算新增计算列

  • 若当前需要新增计算列:近两年的收益=过去一年的收益+今年以来的收益,可按如下进行配置:

    1. 在字段表达式的“字段”下拉列表中,选择过去一年的收益,表达式配置窗口中自动写入有关字段名称;

    2. 在字段表达式的“字段”下拉列表中,选择今年以来的收益字段,表达式配置窗口中自动写入有关字段名称;

    3. 在表达式配置窗口中,往过去一年的收益今年以来的收益两个字段中间添加加法运算符即可。image

      说明

      格式化:用于系统自动规整表达式内容的格式。

  • 若当前需要新增计算列运用到乘法、减法或除法,可参考上文加法的配置方法。

使用系统内置函数新增计算列

若当前需要新增计算列:今年以来的最大收益=max(今年以来的收益),可按进行如下配置:

  1. 在字段表达式的“函数”下拉列表中,点击MAX函数,表达式配置窗口中自动写入有关函数;

  2. 在字段表达式的“字段”下拉列表中,点击字段今年以来的收益,表达式配置窗口中自动写入有关字段名即可。

image