Funciones OVER
Las funciones OVER se usan para determinar la forma en la que deben fragmentarse los datos; por ejemplo, en intervalos de tiempo.
Opción | Descripción |
---|---|
All | Usa todos los nodos de la jerarquía a la que se hace referencia. Puede resultar útil para cruzar el nodo actual con más de una jerarquía. Por ejemplo, puede mostrar las ventas relativas de varias categorías de productos en cada mes. Ejemplos de expresiones personalizadas: Sum([Sales]) / Sum([Sales]) OVER (Intersect(All([Axis.Color]), [Axis.X])) Sum([Sales]) / Sum([Sales]) OVER (All([Axis.X])) * 100 Ejemplos de columnas calculadas: Sum([Sales]) OVER All([Date]) Max([Sales]) OVER Intersect([Category], All([Date])) |
AllNext | Usa todos los nodos, incluido el actual, hasta el final del nivel. Ejemplo de una expresión personalizada: Sum([Sales]) OVER (AllNext([Axis.X])) Ejemplos de columnas calculadas: Sum([Sales]) OVER AllNext([Date]) Max([Sales]) OVER Intersect([Category], AllNext([Date])) |
AllPrevious | Usa todos los nodos, incluido el actual, desde el inicio del nivel. Se puede usar para calcular la suma acumulativa. Ejemplos de expresiones personalizadas: Sum([Sales]) OVER (AllPrevious([Axis.X])) Sum([Sales]) OVER (Intersect(Parent([Axis.X]), AllPrevious([Axis.X]))) Ejemplos de columnas calculadas: Sum([Sales]) OVER AllPrevious([Date]) Max([Sales]) OVER Intersect([Category], AllPrevious([Date])) |
FirstNode | Selecciona el primer nodo del nivel actual. Ejemplo de una expresión personalizada: Sum([Sales]) - Sum([Sales]) OVER (FirstNode([Axis.X])) Ejemplo de una columna calculada: Sum([Sales]) - Sum([Sales]) OVER (FirstNode([Hierarchy.TimeHierarchy])) |
Intersect | Devuelve las filas cruzadas de los nodos en distintas jerarquías. Consulte también AllPrevious y All. Ejemplo de una expresión personalizada: Intersect(Parent([Axis.X]), All([Axis.Color]), Parent([Axis.Rows]), ...) Ejemplo de una columna calculada: Sum([Sales]) OVER Intersect([Category], AllPrevious([Date])) |
LastNode | Selecciona el último nodo del nivel actual. Ejemplo de una expresión personalizada: Sum([Sales]) - Sum([Sales]) OVER (LastNode([Axis.X])) Ejemplo de una columna calculada: Sum([Sales]) - Sum([Sales]) OVER (LastNode([Hierarchy.TimeHierarchy])) |
LastPeriods | Incluye el nodo actual y los n - 1 nodos anteriores. Esta opción se puede usar para calcular promedios móviles. Ejemplo de una expresión personalizada: Sum([Sales]) OVER (LastPeriods(3, [Axis.X]))/3 Ejemplo de una columna calculada: Sum([Sales]) - Sum([Sales]) OVER (LastPeriods([Hierarchy.TimeHierarchy])) |
NavigatePeriod | Permite especificar su propia navegación de nodo. El método tiene cuatro argumentos: Arg1 es la jerarquía por la que se debe navegar. Arg2 es un valor de cadena que especifica el máximo nivel de la jerarquía hasta el que puede navegar. Arg3 es un entero que especifica el número de pasos que se puede mover hacia los lados en la jerarquía en el nivel especificado en Arg1. Arg4 es opcional y determina el nivel mínimo de la jerarquía al que puede navegar. Es posible omitir este argumento en cuyo caso se realiza una navegación hasta el nivel de hoja. Ejemplos de expresiones personalizadas: 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) Ejemplo de una columna calculada: Avg([Sales]) OVER (NavigatePeriod([Hierarchy.TimeHierarchy],0,-10)) - Avg([Sales])OVER (NavigatePeriod([Hierarchy.TimeHierarchy],0,10)) |
Next | Compara el nodo actual con el nodo siguiente del mismo nivel en la jerarquía. Si no hay un nodo de este tipo, es decir, si el actual es el último del nivel, el subconjunto resultante no contendrá ninguna fila. Ejemplos de expresiones personalizadas: Sum([Sales]) - Sum([Sales]) OVER (Next([Axis.X])) Count() OVER Next([Axis.X], 2) Ejemplo de una columna calculada: Max([Sales]) OVER (Intersect([Category],Next([Year]))) |
NextPeriod | Usa el siguiente nodo que tiene el valor siguiente en el mismo nivel que el nodo actual. Si no hay un nodo de este tipo, es decir, si el actual es el último del nivel, el subconjunto resultante no contendrá ninguna fila. Ejemplos de expresiones personalizadas: Sum([Sales]) OVER (NextPeriod([Axis.X])) Count() OVER NextPeriod([Axis.X], 2) Ejemplo de una columna calculada: Max([Sales]) OVER (Intersect([Category],NextPeriod([Year]))) |
ParallelPeriod | Usa el nodo paralelo anterior con el mismo valor en el mismo nivel que el nodo actual. Por ejemplo, se puede usar para comparar los resultados de ventas de cada mes con el mes correspondiente del año anterior. Ejemplo de una expresión personalizada: Sum([Sales])-Sum([Sales]) OVER (ParallelPeriod([Axis.X])) Ejemplo de una columna calculada: Sum([Sales])-Sum([Sales]) OVER (ParallelPeriod([Hierarchy.TimeHierarchy])) |
Parent | Usa el subconjunto principal del nodo actual. Si el nodo no tiene uno principal, se usan todas las filas como subconjunto. Ejemplos de expresiones personalizadas: Sum([Sales]) / Sum([Sales]) OVER (Parent([Axis.Color])) Sum([Sales]) / Sum([Sales]) OVER (Parent([Axis.X])) * 100 Avg([Sales]) OVER Parent([Axis.X]) Ejemplo de una columna calculada: Sum([Sales]) OVER (Parent([Hierarchy.TimeHierarchy])) |
Previous | Utiliza el nodo anterior en el mismo nivel que el nodo actual para comparar el resultado de este nodo con el anterior. Si no hay un nodo anterior, es decir, si el actual es el primero del nivel, el subconjunto resultante no contendrá ninguna fila. Ejemplos de expresiones personalizadas: Sum([Sales]) - Sum([Sales]) OVER (Previous([Axis.X])) Count() OVER Previous([Axis.X], 2) Ejemplo de una columna calculada: Max([Sales]) OVER (Intersect([Category],Previous([Year]))) |
PreviousPeriod | Usa el siguiente nodo que tiene el valor anterior en el mismo nivel que el nodo actual. Si no hay un nodo anterior, es decir, si el actual es el primero del nivel, el subconjunto resultante no contendrá ninguna fila. Ejemplos de expresiones personalizadas: Sum([Sales]) OVER (PreviousPeriod([Axis.X])) Count() OVER PreviousPeriod([Axis.X], 2) Ejemplo de una columna calculada: Max([Sales]) OVER (Intersect([Category],PreviousPeriod([Year]))) |