Agregaciones anidadas con la función de agregación
El anidamiento con TOTAL no siempre es suficiente. Para otras capacidades de anidamiento más genéricas, deberá emplearse la función de agregación avanzada en combinación con dimensiones calculadas.
Ejemplo:
Los siguientes datos se han tomado del script:
Una pregunta obvia, con estos datos, es: "¿Cuántos clientes tiene cada agente de ventas?".
La pregunta se responde fácilmente utilizando una tabla QlikView estándar:
Puede que surjan nuevas preguntas que se van planteando conforme a los conocimientos que se van adquiriendo: "¿Cuántos agentes de ventas tienen un solo cliente? ¿Cuántos tienen tres o más?" .
Si descartamos en este caso concreto el hecho de que por supuesto usted puede hacer la cuenta directamente en las columnas, por tratarse de un ejemplo muy sencillo, éste es el tipo de preguntas que requieren un segundo orden de agregación. Los datos necesarios para hacer el cálculo no existen en los campos originales, ni pueden calcularse directamente desde ellos.
Simplemente debemos encontrar la manera de incluir la columna de la expresión del gráfico superior como dimensión de un nuevo gráfico. Esto se puede hacer utilizando la función de agregación avanzada.
Para hacer el cálculo del primer gráfico como un cálculo interno en un nuevo gráfico, necesitamos emplear la siguiente sentencia para la dimensión:
=Aggr(Count(Customer),SalesRep)
Después, introducimos la expresión siguiente para el nuevo gráfico:
Count(Distinct SalesRep)
El cualificador DISTINCT es necesario, ya que QlikView contará el número de líneas en la tabla subyacente.
La tabla resultante resuelve la cuestión "¿Cuántos representantes de ventas tienen 1, 2, 3 etc. clientes?":
Hay que tener en cuenta dos cosas:
- El segundo gráfico no requiere de ninguna manera la presencia del primer gráfico. Es independiente por sí mismo en relación al primer orden de agregación definido en su dimensión.
- Las posibilidades de anidamiento no terminan aquí. Los argumentos de dimensión de la función de agregación avanzada pueden contener, por supuesto, dimensiones calculadas, las cuales a su vez hacen uso de la función aggr. Podría no obstante ser relativamente fácil perder la pista de lo que se está haciendo al pasar al tercer nivel de agregación.