Uso de una declaración OVER para hacer referencia a fragmentos de datos
Las expresiones personalizadas se evalúan en los fragmentos de datos, que están representados por los indicadores de la visualización. Las declaraciones OVER de las expresiones personalizadas se usan cuando también se desean incluir datos externos al fragmento actual en la evaluación de una expresión.
Para explicar lo que implica la inclusión de datos externos al fragmento actual, observe la siguiente imagen. Para ilustrar los conceptos de fragmentación e indicadores se utiliza una imagen similar; estos conceptos son esenciales cuando se trabaja con expresiones personalizadas, particularmente con aquellas que contienen declaraciones OVER.
El cuadro grande simboliza todas las filas de la tabla de datos que contienen las ventas anuales en diferentes regiones para algunos tipos de frutas, y los cubos simbolizan diferentes fragmentos de los datos.

Supongamos que desea comparar las ventas de naranjas en el norte en 2018 con las ventas de limones en el oeste en 2018, o con las ventas de naranjas en el oeste en el periodo 2015-2017. Es decir, en una expresión de este tipo, se debe hacer referencia a fragmentos de datos externos a las ventas de naranjas en el norte en 2018; para ello, se utiliza la declaración OVER. La declaración OVER pone a su disposición nuevas formas de agrupar los datos a los que se hará referencia en las expresiones.
La forma más fácil de explicar cómo escribir declaraciones OVER en las expresiones y cómo funcionan es mediante ejemplos.
Ejemplos de expresiones OVER
[Axis.X]
o [Axis.Color]
.El gráfico de dispersión muestra la suma de las ventas para cada fruta: Manzanas, Naranjas y Peras. El total de ventas es 300.

Cuando la expresión
Sum([Sales]) OVER (All([Axis.X]))
se especifica en el eje Y, cada indicador se vuelve a evaluar y el gráfico de dispersión cambia a:

Para entender el resultado, tomemos como ejemplo el indicador que presenta la suma de ventas de manzanas. La expresión personalizada implica que el indicador deberá volver a evaluarse para mostrar la suma de las ventas para todos los fragmentos del eje X, es decir, la suma de las ventas de manzanas, naranjas y peras (150+80+70). Lo mismo ocurre con los otros indicadores, por lo que todos los indicadores acaban con valores idénticos. De hecho, la parte OVER (All([Axis.X]))
de la expresión implica que se omite la fragmentación en el eje X.
En el siguiente ejemplo, los datos se fragmentan aún más, ya que se especifica el año en el eje de color.

Cambie el eje Y a la siguiente expresión:
Sum([Sales]) OVER (All([Axis.Color]))

Esta expresión personalizada implica que cada indicador deberá volver a evaluarse para mostrar la suma de las ventas de todos los fragmentos de color; de hecho, se ignora la fragmentación por color.
Tomemos como ejemplo las peras de 2015 (la estrella azul Peras). El nuevo valor del indicador muestra la suma de las ventas de peras para los tres años (40+20+10). Todos los indicadores de un tipo de fruta obtienen el mismo valor del eje Y, sin importar el color (Año).
Los ejemplos anteriores no representan usos prácticos, pero sirven para comprender cómo funciona la declaración OVER junto con los llamados métodos de navegación de nodos.
Uso de declaraciones OVER en columnas calculadas
El uso de la declaración OVER en columnas calculadas funciona de manera diferente a su uso en expresiones personalizadas. En columnas calculadas, podría dar como resultado menos registros.
- Uso de declaraciones OVER en columnas calculadas
Puede realizar cálculos en los datos y mostrar los resultados como valores en una nueva columna que se agrega a la tabla de datos. En la expresión utilizada para el cálculo, puede usar una declaración OVER. Sin embargo, el uso de la declaración OVER en columnas calculadas funciona de manera diferente a su uso en expresiones personalizadas. En las columnas calculadas, la expresión OVER se usa para calcular valores separados y fijos para diferentes grupos; esta expresión puede hacer que los datos se dividan en menos registros. - Uso de agregaciones en expresiones OVER
Si el resultado de una expresión debería ser una vista agregada de los valores de una columna, debe utilizar la función de expresión que desee para determinar la salida. Por ejemplo, si se debe resumir una columna que contenga cifras de ventas, debe especificarSum([Sales])
en el campo de expresiones. No obstante, los valores agregados que se combinan con expresiones OVER permiten dividir los datos de la forma que desee. - Uso de expresiones en datos agregados (la palabra clave THEN)
El uso de la palabra clave THEN permite evaluar una expresión sobre datos ya agregados, generalmente los datos en la visualización actual. En muchos casos, esto puede dar un mejor rendimiento en los cálculos. Por ejemplo, cuando utiliza expresiones OVER, siempre hay una ganancia que obtener al permitir, en primer lugar, la agregación de los datos y, a continuación, la aplicación de la parte OVER de la expresión. Esta acción es necesaria al trabajar con datos en bases de datos, ya que no hay datos a nivel de fila disponibles en dicho caso, aunque es posible mejorar el rendimiento trabajando también con datos en memoria.