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.

Nota: Las columnas calculadas siempre se calculan en todos los valores de la columna, independientemente de cómo se filtren los datos.

Cuando se trabaja con columnas calculadas, no hay ningún eje disponible para navegar, como en el caso de las expresiones personalizadas. En su lugar, se usa la expresión OVER para hacer referencia a una columna de datos (o jerarquía).

En la siguiente tabla de datos, la expresión

Sum([Sales]) OVER ([Fruit])

se usa para calcular los valores de la columna agregada:



Es decir, para cada fila, la suma total de las ventas del tipo de fruta en cuestión se presenta en la nueva columna. Por ejemplo, dado que el total de ventas de manzanas es 200 (30+70+100), este valor se muestra en cada fila de "Manzanas". El efecto está dividiendo en menos valores (200 y 100).
Nota: Los nuevos valores de columna no cambiarán cuando los datos se filtren más tarde. Por ejemplo, si se filtra la fila de datos de la parte superior, los valores de columna calculados para las filas de "Manzanas" seguirán siendo 200.

Ejemplo ampliado

Puede que la columna calculada con menos registros no sea muy útil como columna independiente. Por ello, agregaremos otra columna donde la expresión anterior sea una parte de la expresión utilizada:

[Sales] / (Sum([Sales]) OVER ([Fruit]))



Esta expresión calcula la contribución relativa de cada transacción de venta a las ventas totales a lo largo de los años en cada tipo de fruta. Por ejemplo, el 15 % (30/200) de las ventas totales de manzanas se produjeron en 2015, el 35 % (70/200) en 2016, y el resto, el 50 % (100/200), en 2017.

En el siguiente gráfico de barras, la columna calculada se ha seleccionado en el eje de valores mediante la agregación Sum.



De hecho, este resultado es el mismo que usar la opción Barras 100% apiladas en un gráfico de barras que muestra Sum([Sales]).

Combinación de OVER con un método de navegación de nodo en una columna calculada

En la expresión que se utiliza para calcular una columna, se puede utilizar la declaración OVER junto con un método de navegación de nodo. Este ejemplo puede darle una idea de cómo usar uno de los métodos, Previous().

En la tabla de datos se enumeran los pesos medidos semanales de un niño recién nacido visualizados como un gráfico de líneas.





Supongamos que nos interesa el crecimiento semanal. Esto se puede calcular utilizando la expresión:

[Weight (g)] - Sum([Weight (g)]) OVER (Previous([Week]))

Los resultados se pueden ver en la tabla de datos y en el siguiente gráfico de barras.