Spotfire® Web 客户端用户指南

使用 OVER 语句引用数据切片

自定义表达式根据在图表中使用标记表示的数据切片计算得出。当您要在自定义表达式计算中包含当前切片之外的数据时,可以在自定义表达式中使用 OVER 语句。

要解释包含当前切片之外的数据意味着什么,请参见下图。使用类似的图阐述分割和标记概念,它们对于了解何时使用自定义表达式非常重要,尤其是包含 OVER 语句的自定义表达式。

大方框表示数据表中的所有行,包括某些水果类型在不同地区的年销售额,立方体表示不同的数据切片。



假设您要比较 2018 年北部地区的橘子销售额与 2018 年西部地区柠檬的销售额,或者比较 2015 年至 2017 年西部地区的橘子销售额。也就是说,在此类表达式中,您需要使用 OVER 语句引用 2018 年北部地区橘子销售额之外的数据切片。使用 OVER 语句,您可以开拓对要在表达式中引用的数据进行分组的新方法。

解释如何在表达式中写入 OVER 语句及其工作原理的最简单的方法是举例说明。

OVER 表达式的示例

注: 首先,当您使用表达式中的 OVER 语句引用其他切片时,不要引用在轴上分割数据所使用的实际列,而是要引用轴本身,例如 [Axis.X][Axis.Color]

散点图显示每种水果的销售额总和;苹果、橘子和梨。总销售额为 300。



在 Y 轴上指定表达式时,

Sum([Sales]) OVER (All([Axis.X]))

重新计算每个标记,散点图更改为:



为理解结果,以呈现苹果销售额总和的标记为例。自定义表达式暗示标记应当重新计算,以显示所有 X 轴切片的销售额总和,即苹果、橘子和梨销售额总和 (150+80+70)。其他标记同样如此,所以所有标记都以相同的值结束。实际上,表达式的 OVER (All([Axis.X])) 部分暗示忽略 X 轴上的分割!

在下一个示例中,对数据进行进一步分割,因为在颜色轴上指定了年份。



将 Y 轴更改为以下表达式:

Sum([Sales]) OVER (All([Axis.Color]))


自定义表达式暗示每个标记都应重新计算,以显示所有颜色切片的销售额总和,但实际上却忽略了按颜色进行的分割。

注: 在上述示例中使用的表达式仅适用于使用内存中数据的情况。如果使用数据库中的数据,则需要 THEN 表达式。

以 2015 年的梨为例(蓝色梨星号)。标记的新值显示三年的梨销售额总和 (40+20+10)。水果类型中的所有标记都获得相同的 Y 轴值,无论颜色如何(年份)。

尽管上述示例并未实际使用,但可作为了解 OVER 语句如何与所谓的节点导航方法一起使用的手段。

在计算列中使用 OVER 语句

OVER 语句在计算列中的使用不同于在自定义表达式中的使用。在计算列中,它可能会导致记录减少。