跳到主要内容

字段、度量和变量引用

在该页面上

字段、度量和变量引用

表达式可以包含对字段、变量和度量的引用。

在大多数情况下,表达式是聚合,也就是可能跨越多个记录的计算。表这意味着达式中的所有字段引用都必须包含在表达式函数中。如果没有使用聚合函数,则会使用 Only() 函数。

当度量的名称在表达式中使用时,它将被解释为度量的别名。这允许您重用已定义的实体。可以用这种方式使用主度量和图表度量的标签。但是,图表度量必须在同一个图表中。不能在其他图表中使用度量的标签。

可以递归地定义度量。换句话说,度量可以包含对自身的引用。但是,您应该只在只有几行的图表中执行此操作。如果图表有许多行,性能会下降。如果有数百行,递归定义将完全停止工作。

一个变量可以用两种不同的方式用于直接引用或美元扩展。如果使用直接引用,则变量值将用于计算。如果使用美元扩展,则在解析表达式之前,整个美元扩展将替换为变量值。因此,两种不同的方法可能会返回不同的结果。

如何解释名称

表达式中的名称可以是对字段、变量、函数或度量的引用。根据不同的情况,这个名称会有不同的解释。

示例:  

字符串 XXX 表示字段、变量、函数或度量。XXX 可以解释为这些之一,具体取决于您创建表达式的方式。

如何解释名称的示例
表达式 XXX 可以解释为
XXX 度量、变量或字段
$(XXX) 变量
Count(XXX) 字段或变量
XXX() 函数

字段和变量(或度量)不应使用相同的名称。但如果您这样做了,并且存在歧义,则使用以下优先顺序:

  • 如果在聚合函数中找到名称,则字段优先于变量。

  • 如果在聚合函数外找到名称,则度量优先于变量,而变量又优先于字段。

表达式规则

以下规则将应用于图表表达式:

  • 如果字段引用未包装在聚合函数中,则引擎将使用 Only() 函数。

  • 全部表达式返回一个适当的数字及/或一个字符串。

  • 逻辑函数和运算符 False 返回 0,True 返回 -1。默认数字到字符串转换和字符串到数字转换。

  • 逻辑运算符和函数将 0 解释为 False,将所有其他结果解释为 True

  • 无法正确评估的表达式,如作为不正确参数或函数的结果时,返回 NULL