Saltar al contenido principal

Funciones de agregación

La familia de funciones conocida como funciones de agregación, consiste en funciones que toman varios valores de campo como entrada y devuelven un solo resultado por grupo, donde la agrupación se define mediante 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áficos, pero la sintaxis difiere.

Limitaciones:  

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.

Uso de las funciones de agregación en el 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.

Vea: Análisis de conjuntos

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.

Por lo tanto, si usa un campo clave dentro de una función de agregación sin la cláusula distinct, Qlik Sense devolverá un número que puede que no tenga 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, o bien 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.

APRENDIZAJE RELACIONADO: