Saltar al contenido principal Saltar al contenido complementario

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.

Las funciones de agregación 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 sólo pueden utilizarse 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 ella. Por ejemplo, Count(<Field>) contará el número de registros de la tabla donde reside <Field>. Si desea agregar solo los valores de campo distintos, debe usar la cláusula distinct, como 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 cuanto al rendimiento y, por este motivo, se deben evitar tales agregaciones, especialmente cuando tiene grandes cantidades de datos.

Agregación de campos claves

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 de la segunda tabla.

Sin embargo, si utiliza la cláusula distinct, la agregación está bien definida y se puede calcular.

Entonces, si usa un campo clave dentro de una función de agregación sin la cláusula distinct, QlikView devolverá un número que puede no tener sentido. La solución está en usar la cláusula distinct o una copia de la clave, una copia que resida en una tabla únicamente.

Por ejemplo, en las tablas siguientes, ProductID es la clave entre las tablas.

La clave ProductID entre las tablas de Productos y Detalles

Ejemplo de selecciones actuales

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 en la tabla Details (que probablemente tenga varios registros por producto). Si desea contar el número de productos distintos, debe utilizar Count(distinct ProductID). Si desea contar el número de filas de una tabla específica, no debe usar la tecla.

¿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.

Únase al Programa de modernización de la analítica

Remove banner from view

Modernícese sin comprometer sus valiosas aplicaciones de QlikView con el Programa de modernización de la analítica. Haga clic aquí para obtener más información o contactar con nosotros: ampquestions@qlik.com