计算列配置

本文用于介绍数据表中如何根据已有数据列,来计算出新的数据列,则该列被称为计算列。通过配置计算列可高效扩展表格数据内容,灵活支持有关业务场景的需求。

功能示例

如下学生成绩表,表中已有学生的语文、数学和英语成绩,若需要新增一列为“总分”,则可通过配置计算列完成。

学生姓名

语文成绩

数学成绩

英语成绩

张三

88

86

87

李四

91

93

95

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

学生姓名

语文成绩

数学成绩

英语成绩

总分

张三

88

86

87

261

李四

91

93

95

279

操作步骤

  1. 进入相关机器人空间,选择知识库>表格管理>数据表管理

  2. 单击需要新增计算列表格右侧的编辑按钮。

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

    image

  4. 配置详情如下:

    • 四则运算配置

      在字段表达式的字段下拉列表中,单击字段语文成绩数学成绩英语成绩,在表达式配置窗口中会自动写入有关字段名。

      image

    • 函数配置

      若当前需要新增计算列:数学的平均成绩,可按进行如下配置:

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

      2. 在字段表达式的字段下拉列表中,点击字段数学成绩,表在表达式配置窗口中会自动写入有关字段名。

        image

  5. 单击确定,完成新增计算列。

附录

计算列配置规则

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

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

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

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

      • 数字范围型格式:第一个数字必须小于第二个数字,必须为数字或者小数,不支持千分位数字;示例[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"]。

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

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

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

支持的函数

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

系统内置函数

  • 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