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 | 将从不同层级中的节点返回相交的行。另请参见 AllPrevious和 All。 自定义表达式的示例: 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]))) |