Envision 中的聚合器列表


首页 » 资源 » 此处

本页列出了 Envision 支持的聚合器。这些聚合器与函数相似,但具有更丰富的语法和选项。

聚合器的用法

不论是否在表与表之间执行连接,聚合器都有两种用法。

简单聚合

在不连接的情况下,聚合器 agg 的一般用法为:
u = agg(v) by [w1, w2, w3] sort [w4, w5] if c or x over [a .. b]
其中:
  • agg 为聚合器的名称。
  • by 选项用于指示聚合时所要使用的组。可以对一个或多个值聚合。
  • sort 选项用于指示聚合时的排序。可以对一个或多个值聚合。
  • if 为聚合器过滤器。若存在该过滤器,所有 false 行在聚合时会被忽略。
  • or 选项用于指示组为空时所要返回的值。
  • over 选项用于定义聚合时间跨度,界限用天表示且相对于目标行的日期。

在未指定 by 的情况下,将按照上下文分组,赋值时通常使用语句的左边。by 后面可以列出多个变量;如果只使用一个变量,则不必使用括号。

sort 选项通常对大部分聚合器(例如 max)无影响,因为这些运算符不依赖于第一个位置的任何排序。但我们建议您对 firstlast 聚合器使用此选项。

在未指定 if 的情况下,所有包括在内的行均等同于 if true

在未指定 or 选项的情况下,分组为空时将返回默认值:如为数字,返回 0(零);如为布尔值,返回 false;如为文本,返回空字符串;如为分布,返回零分布。

通过连接表进行聚合

第二种情况的一般语法与上述第一种相似,但存在不同之处:

u = agg(v) by [w1, w2, w3] sort [w4, w5] if c at [z1, z2, z3] or x

at 选项指示连接表时使用的组。请注意,这些组与 by 选项中使用的组必须存在一对一的对应关系。因此必须提供 by 选项,并且 byat 选项中指定的项目必须相同。

基本聚合器

最常用的聚合器有:

  • avg:仅适用于数值参数;返回行的平均值。
  • count:对为 true(布尔值)、非零(数字)或非空(文本)的行计数。
  • distinct:对不同值的数目计数。
  • first:返回与最早的行相关的值,根据 sort 选项定义。
  • last:返回与最新的行相关的值,根据 sort 选项定义。
  • max:返回最高值。
  • median:与 Excel 中的 MEDIAN 函数作用相同。
  • min:返回最低值
  • product:仅为数值参数;返回产品系列值。
  • ratio:如果为 true,则返回布尔值百分比(介于 0 和 1 之间);否则返回非零的数值。空组的比率为 1。
  • same:返回所有预计为相同(否则将不满足条件)的分组值。
  • sum:仅限数值参数;返回行值之和。

逻辑聚合器

以下聚合器返回布尔值:

  • all:如果所有输入行为 true,则返回 true,否则返回 false
  • any:如果所有输入行为 false,则返回 false,否则返回 true
  • exists:如果至少有一行传递给聚合器,则返回 true

临时聚合器

以下聚合器仅适用于具有 Date 列的表:

  • latest(交叉表,特殊情况):返回观察到的最近值。latest 不兼容任何可用选项。

统计聚合器

以下聚合器可用于进行统计计算:

  • entropy:返回组的 香农熵。返回的值以“香农”表示。
  • mode:与 Excel 中的 MODE 函数相似。
  • percentile(双参数,特殊情况):与 Excel 中的 PERCENTILE 函数相似。第二个参数为介于 0 和 1 之间的百分比值。
  • stdev:与 Excel 中的 STDEV 函数相似。
  • stdevp:与 Excel 中的 STDEV.P 函数相似。

随机变量

通过聚合可以形成分布(另请参阅分布代数):

  • ranvar:返回与数值观察相关的经验性随机变量。
  • sumr:返回随机变量的加卷积之和。与 sum() 是与 + 运算符相关联的聚合器一样, 聚合器 sumr() 则关联 +* 运算符。