Spotfire® 用户指南

OVER 函数

OVER 函数用于确定数据划分的方式,例如相对于时间段。

注: 对于自定义表达式和计算列,OVER 函数的用法有所不同。在自定义表达式中,可以包含对轴的引用;而在计算列中,只能引用列或固定层级。

有关更多信息,请参见使用 OVER 语句引用数据切片在计算列中使用 OVER 语句

选项说明
All 将使用引用的层级中的所有节点。它在当前节点与多个层级相交的情况下很有用。例如,您可以呈现不同产品类别每月的相对销售数据。

自定义表达式的示例:

Sum([Sales]) / Sum([Sales]) OVER (Intersect(All([Axis.Color]), [Axis.X]))

Sum([Sales]) / Sum([Sales]) OVER (All([Axis.X])) * 100

计算列的示例:

Sum([Sales]) OVER All([Date])

Max([Sales]) OVER Intersect([Category], All([Date]))

AllNext将使用所有节点,即从当前节点(包含)到级别结尾的节点。

自定义表达式的示例:

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

计算列的示例:

Sum([Sales]) OVER AllNext([Date])

Max([Sales]) OVER Intersect([Category], AllNext([Date]))

AllPrevious将使用所有节点,即从级别开头的节点到当前节点(包含)。它可以用于计算累计总数。

自定义表达式的示例:

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

Sum([Sales]) OVER (Intersect(Parent([Axis.X]), AllPrevious([Axis.X])))

计算列的示例:

Sum([Sales]) OVER AllPrevious([Date])

Max([Sales]) OVER Intersect([Category], AllPrevious([Date]))

FirstNode请选择当前级别上的第一个节点。

自定义表达式的示例:

Sum([Sales]) - Sum([Sales]) OVER (FirstNode([Axis.X]))

计算列的示例:

Sum([Sales]) - Sum([Sales]) OVER (FirstNode([Hierarchy.TimeHierarchy]))

Intersect将从不同层级中的节点返回相交的行。另请参见 AllPreviousAll

自定义表达式的示例:

Intersect(Parent([Axis.X]), All([Axis.Color]), Parent([Axis.Rows]), ...)

计算列的示例:

Sum([Sales]) OVER Intersect([Category], AllPrevious([Date]))

LastNode请选择当前级别上的最后一个节点。

自定义表达式的示例:

Sum([Sales]) - Sum([Sales]) OVER (LastNode([Axis.X]))

计算列的示例:

Sum([Sales]) - Sum([Sales]) OVER (LastNode([Hierarchy.TimeHierarchy]))

LastPeriods将包含当前节点和 n - 1 前面的节点。它可以用于计算移动平均数。

自定义表达式的示例:

Sum([Sales]) OVER (LastPeriods(3, [Axis.X]))/3

计算列的示例:

Sum([Sales]) - Sum([Sales]) OVER (LastPeriods([Hierarchy.TimeHierarchy]))

NavigatePeriod允许您指定自己的节点导航。此方法包括四个参数:

Arg1 是要导航的层级。

Arg2 是一个字符串值,指定您应该向上导航至的层级级别。

Arg3 是一个整数,指定在 Arg1 指定的级别中移动到层级的一侧所需的步骤数目。

Arg4 为可选项,决定需要向下移动到的层级级别。如果已导航至叶级,则可省略掉该参数。

自定义表达式的示例:

Sum([Sales]) OVER NavigatePeriod([Axis.X], "Year", -1)

Sum([Value]) OVER NavigatePeriod([Axis.X], "Year", 0, 0)

Sum([Sales]) OVER NavigatePeriod([Axis.X], 2, -1, 2)

计算列的示例:

Avg([Sales]) OVER (NavigatePeriod([Hierarchy.TimeHierarchy],0,-10)) - Avg([Sales])OVER (NavigatePeriod([Hierarchy.TimeHierarchy],0,10))

Next将比较当前节点与层级中同一级别的下一个节点。如果没有下一个节点,即如果当前节点是当前级别的最后一个节点,则结果子集将不包含任何行。

自定义表达式的示例:

Sum([Sales]) - Sum([Sales]) OVER (Next([Axis.X]))

Count() OVER Next([Axis.X], 2)

计算列的示例:

Max([Sales]) OVER (Intersect([Category],Next([Year])))

NextPeriod将使用下一个节点,该节点带有与当前节点位于同一级别的下一个值。如果没有下一个节点,即如果当前节点是当前级别的最后一个节点,则结果子集将不包含任何行。

自定义表达式的示例:

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

Count() OVER NextPeriod([Axis.X], 2)

计算列的示例:

Max([Sales]) OVER (Intersect([Category],NextPeriod([Year])))

ParallelPeriod将使用上一个平行节点,该节点带有与当前节点位于同一级别的相同的值。例如,它可以用于比较每月的销售业绩与上一年对应月份的销售业绩。

自定义表达式的示例:

Sum([Sales])-Sum([Sales]) OVER (ParallelPeriod([Axis.X]))

计算列的示例:

Sum([Sales])-Sum([Sales]) OVER (ParallelPeriod([Hierarchy.TimeHierarchy]))

Parent 将使用当前节点的父子集。如果该节点没有父子集,则所有行都将用作子集。

自定义表达式的示例:

Sum([Sales]) / Sum([Sales]) OVER (Parent([Axis.Color]))

Sum([Sales]) / Sum([Sales]) OVER (Parent([Axis.X])) * 100

Avg([Sales]) OVER Parent([Axis.X])

计算列的示例:

Sum([Sales]) OVER (Parent([Hierarchy.TimeHierarchy]))

Previous将使用与当前节点位于同一级别的上一个节点,来比较当前节点与上一个节点的结果。如果没有上一个节点,即如果当前节点是当前级别的第一个节点,则结果子集将不包含任何行。

自定义表达式的示例:

Sum([Sales]) - Sum([Sales]) OVER (Previous([Axis.X]))

Count() OVER Previous([Axis.X], 2)

计算列的示例:

Max([Sales]) OVER (Intersect([Category],Previous([Year])))

PreviousPeriod将使用上一个节点,该节点带有与当前节点位于同一级别的上一个值。如果没有上一个节点,即如果当前节点是当前级别的第一个节点,则结果子集将不包含任何行。

自定义表达式的示例:

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

Count() OVER PreviousPeriod([Axis.X], 2)

计算列的示例:

Max([Sales]) OVER (Intersect([Category],PreviousPeriod([Year])))

另请参见函数