表达式中引用数据集字段

从2.0.6版本开始,表达式支持直接与某个数据集的字段绑定,并支持采用count、countd、max、min、sum、avg共六种类型的数据聚合方式对数据集中指定字段进行聚合求值。

语法格式:datasetName.aggregate(fieldName)。如user.sum(salary),这个表达式就意味着要从数据集user中取对应的salary字段的值,并将取到的值进行求和计算后返回结果。

需要注意的是,这个表达式在取值时会受其所在单元格的父格影响,如果其所在单元格的左父格是一个绑定数据集字段的单元格,且数据集与当前表达式所用数据集为同一个,那么这个表达式在计算数据集值时就是其所在单元格父格绑定的数据集下的数据;同样如果该表达式所在单元格的上父格也是一个绑定数据集字段的单元格,且数据集与当前表达式所用数据集为同一个,那么当前表达式的值就会受这两个方向上父格值的约束影响。

举个例子,如下图所示:

1716344716922

在上面的模版中,B1单元格中数据集表达式使用的是employee数据集,对其SALARY进行求和计算,但因为其所在单元格的左父格A1上绑定的数据集也是employee,所以B1单元格中表达式计算时就受A1的影响,所以上面的表达式效果就和下图中直接绑定字段到B1单元格完全一样。

1716344926683

因为支持在表达式中直接绑定数据集字段进行聚合计算,所以我们可以写一些有意思的表达式,比如下面这种:

1716346040480

在上图当中,我们将每个部门下的SALARY字段进行求和,然后再和每个部门下员工数量相乘作为B2单元格的结果。employee.sum(SALARY)表达式取的是这个部门下的员工薪水的和;employee.count(EMPLOYEE_NAME)表达式是对应部门下员工的数量。

表达式中可使用的聚合方式

目前数据集绑定字段的表达式支持六种类型的数据聚合方式,分别是count、countd、max、min、sum、avg。

  • count 取数量
  • countd 去重后取数量
  • max 取最大值,要求字段必须是一个数字类型
  • max 取最小值,要求字段必须是一个数字类型
  • sum 求和,要求字段必须是一个数字类型
  • avg 求平均值,要求字段必须是一个数字类型

上面的六种聚合方式也就是对应字段绑定到单元格中的其中六种数据聚合方式,只是这里以表达式的方式呈现,在某些情况下使用可能更为便捷。

results matching ""

    No results matching ""