Saltar al contenido principal Saltar al contenido complementario

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.

Al nombrar una entidad, evite asignar el mismo nombre a más de un campo, variable o medida. Existe un orden estricto de precedencia para resolver conflictos entre entidades con nombres idénticos. Este orden se refleja en cualquier objeto o contexto en el que se utilicen estas entidades. Este orden de precedencia es el siguiente:

  • Dentro de una agregación, un campo tiene prioridad sobre una variable. Los nombres de las medidas no son relevantes en las agregaciones y no se priorizan.

  • Fuera de una agregación, una etiqueta de medida tiene prioridad sobre una variable, que a su vez tiene prioridad sobre un nombre de campo.

  • Además, fuera de una agregación, se puede reutilizar una medida haciendo referencia a su etiqueta, a menos que la etiqueta sea de hecho una etiqueta calculada. En esa situación, la medida pierde importancia para reducir el riesgo de autorreferencia y, en este caso, el nombre siempre se interpretará primero como una etiqueta de medida, en segundo lugar como un nombre de campo y en tercer lugar como un nombre de variable.

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 en análisis de conjuntos.

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 para un campo clave vinculado a través de dos tablas.

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

Modelo de datos que muestra dos tablas vinculadas por un campo clave '"ProductId"

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.

Agregaciones de campos clave contenidos en tres o más tablas

El prefijo distinct sólo 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.

APRENDIZAJE RELACIONADO:

Más información

¿Esta página le ha sido útil?

No dude en indicarnos en qué podemos mejorar si encuentra algún problema en esta página o su contenido, como, por ejemplo, errores tipográficos, pasos que falta o errores técnicos.