Funciones de agregación
La familia de funciones conocidas como funciones de agregación consta de funciones que toman múltiples valores de campo como entrada y devuelven un único resultado por grupo, donde el agrupamiento viene definido por una dimensión de gráfico o una cláusula group by en la sentencia de script.
Entre las funciones de agregación se incluyen Sum(), Count(), Min(), Max() y muchas más.
La mayoría de funciones de agregación pueden utilizarse tanto en el script de carga de datos como en las expresiones de gráfico, pero la sintaxis difiere.
Usar funciones de agregación en un script de carga de datos
Las funciones de agregación solo se pueden utilizar dentro de sentencias LOAD y SELECT.
Uso de las funciones de agregación en expresiones de gráficos
El parámetro de la función de agregación no debe contener otras funciones de agregación, a menos que dichas agregaciones internas contengan el cualificador TOTAL. Para agregaciones anidadas más avanzadas, utilice la función avanzada Aggr en combinación con una dimensión especificada.
Una función de agregación agrega sobre el conjunto de registros posibles definidos por la selección. Se puede definir no obstante un conjunto alternativo de registros utilizando una expresión de conjunto.
Análisis de conjuntos y expresiones de conjunto
Cómo se calculan las agregaciones
Una agregación recorre los registros de una tabla específica, agregando los registros en la misma. Por ejemplo, Count(<Field>) contará el número de registros en la tabla donde reside <Field>. Si desea agregar solo los valores de campo distintos, debe usar la cláusula distinct, por ej. Count(distinct <Field>).
Si la función de agregación contiene campos de diferentes tablas, la función de agregación recorrerá los registros del producto cruzado de las tablas de los campos constituyentes. Esto tiene una penalización en el rendimiento y por esta razón deben evitarse dichas agregaciones, especialmente cuando tenemos grandes cantidades de datos.
Agregación de campos clave
La forma en que se calculan las agregaciones significa que no puede agregar campos clave porque no está claro qué tabla debe usarse para la agregación. Por ejemplo, si el campo <Key> vincula dos tablas, no está claro si Count(<Key>) debe devolver el número de registros de la primera o la segunda tabla.
Sin embargo, si utiliza la cláusula distinct, la agregación está bien definida y se puede calcular para un campo clave vinculado a través de dos tablas.
Si utiliza un campo clave dentro de una función de agregación sin la cláusula distinct, QlikView devolverá un número que puede carecer de sentido. La solución es usar la cláusula distinct o usar una copia de la clave, una copia que reside en una tabla únicamente.
Por ejemplo, en las siguientes tablas, ProductID es la clave entre las tablas.
La clave ProductId entre las tablas Products y Details

Count(ProductID) se puede contar en la tabla Products (que tiene solo un registro por producto; ProductID es la clave principal), o bien se puede contar en la tabla Details (que probablemente tenga varios registros por producto). Si desea contar la cantidad de productos distintos, debe usar Count(distinct ProductID). Si desea contar el número de filas en una tabla específica, no debe usar la clave.
Agregaciones de campos clave contenidos en tres o más tablas
El prefijo distinct solo funciona con campos clave que vinculan hasta dos tablas. Al agrupar una agregación sobre un campo clave que existe en tres o más tablas, cualquier operación que requiera información de frecuencia para un campo devolverá NULL. En el caso de un campo clave que vincule tres o más tablas, se debe utilizar una copia del campo que no sea clave.