Aggr - función de gráfico
Aggr() devuelve un conjunto de valores para la expresión calculada sobre la dimensión o dimensiones indicadas. Por ejemplo, el valor máximo de ventas, por cliente, por región.
La función Aggr se utiliza para agregaciones anidadas, en las que su primer parámetro (la agregación interna) se calcula una vez por valor dimensional. Las dimensiones se especifican en el segundo parámetro (y los parámetros subsiguientes).
Además, la función Aggr debe incluirse en una función de agregación externa, utilizando la matriz de resultados de la función Aggr como entrada para la agregación en la que está anidada.
Sintaxis:
Aggr({SetExpression}[DISTINCT] [NODISTINCT ] expr, StructuredParameter{, StructuredParameter})
Tipo de datos que devuelve: dual
Argumentos:
Argumento | Descripción |
---|---|
expr |
Una expresión que consiste en una función de agregación. De forma predeterminada, la función de agregación agregará sobre el conjunto de registros posibles definidos por la selección. |
StructuredParameter |
StructuredParameter consiste en una dimensión y, opcionalmente, criterios de ordenación en el formato: (Dimension(Sort-type, Ordering)) La dimensión es un único campo y no puede ser una expresión. La dimensión se utiliza para determinar la matriz de valores para los que se calcula la expresión Aggr. Si se incluyen criterios de ordenación, se ordena el conjunto de valores creados por la función Aggr, calculada para la dimensión. Esto es importante cuando el orden de clasificación afecta al resultado de la expresión en la que se incluye la función Aggr. Para ver detalles sobre cómo usar los criterios de ordenación, véase Añadir criterios de ordenación a la dimensión en el parámetro estructurado. |
SetExpression | De forma predeterminada, la función de agregación agregará sobre el conjunto de registros posibles definidos por la selección. Se puede definir un conjunto alternativo de registros mediante una expresión de análisis de conjuntos. |
DISTINCT |
Si el argumento de la expresión va precedido por el cualificador distinct o si no se utiliza ningún cualificador en absoluto, cada combinación distinta de valores de dimensión generará un único valor de retorno. Esta es la forma habitual de hacer agregaciones: cada combinación distinta de valores de dimensión generará una línea en el gráfico. |
NODISTINCT |
Si el argumento de la expresión va precedido por el cualificador nodistinct, cada combinación de valores de dimensión podrá generar más de un valor de retorno, dependiendo de los valores subyacentes de la estructura de datos. Si solo hay una dimensión, la función aggr devolverá una matriz con el mismo número de elementos que filas hay en los datos fuente. |
Las funciones básicas de agregación, como Sum, Min y Avg, devuelven un único valor numérico, mientras que la función Aggr() se puede comparar con crear un conjunto temporal de resultados (una tabla virtual), sobre el que se puede realizar otra agregación. Por ejemplo, calculando un valor de ventas promedio al sumar las ventas por cliente en una sentencia Aggr() y calcular después la media de la suma de resultados: Avg(TOTAL Aggr(Sum(Sales),Customer)).
Limitaciones:
Cada dimensión en una función Aggr() debe ser un único campo y no puede ser una expresión (dimensión calculada).
Añadir criterios de ordenación a la dimensión en el parámetro estructurado
En su forma básica, el argumento StructuredParameter en la sintaxis de la función Aggr es una única dimensión. La expresión: Aggr(Sum(Sales, Month)) halla el valor total de las ventas de cada mes. No obstante, cuando se incluye dentro de otra función de agregación puede dar resultados inesperados, a menos que se utilicen criterios de ordenación. Esto se produce porque algunas dimensiones pueden ordenarse numérica o alfabéticamente, etc.
En el argumento StructuredParameter de la función Aggr, puede especificar criterios de ordenación en la dimensión de su expresión. De esta forma, impondrá un orden de clasificación a la tabla virtual que produce la función Aggr.
El argumento StructuredParameter tiene la sintaxis siguiente:
(FieldName, (Sort-type, Ordering))
Los parámetros estructurados pueden anidarse:
(FieldName, (FieldName2, (Sort-type, Ordering)))
El tipo de clasificación puede ser: NUMERIC, TEXT, FREQUENCY o LOAD_ORDER.
Los tipos de ordenación asociados con cada tipo de clasificación son los siguientes:
Tipo de clasificación | Tipos de ordenación permitidos |
---|---|
NUMERIC | ASCENDING, DESCENDING o REVERSE |
TEXT | ASCENDING, A2Z, DESCENDING, REVERSE o Z2A |
FREQUENCY | DESCENDING, REVERSE o ASCENDING |
LOAD_ORDER | ASCENDING, ORIGINAL, DESCENDING o REVERSE |
Los tipos de ordenación REVERSE y DESCENDING son equivalentes.
Para el tipo de clasificación TEXT, los tipos de ordenación ASCENDING y A2Z son equivalentes, y DESCENDING, REVERSE y Z2A son equivalentes.
Para el tipo de clasificación LOAD_ORDER, los tipos de ordenación ASCENDING y ORIGINAL son equivalentes.