Aggr - função de gráfico
Aggr() retorna um conjunto de valores da expressão calculada sobre a dimensão indicada e as dimensões. Por exemplo, o valor máximo de vendas por cliente, por região.
A função Aggr é utilizada para agregações aninhadas, nas quais o primeiro parâmetro (a agregação interna) é calculado uma vez por valor dimensional. As dimensões são especificadas no segundo parâmetro (e parâmetros subsequentes).
Além disso, a função Aggr deve ser incluída em uma função de agregação externa usando a matriz de resultados da função Aggr como entrada para a agregação na qual ela está aninhada.
Sintaxe:
Aggr({SetExpression}[DISTINCT] [NODISTINCT ] expr, StructuredParameter{, StructuredParameter})
Tipo de dados de retorno: dual
Argumentos:
Argumento | Descrição |
---|---|
expr |
Uma expressão normal consiste em uma função de agregação. Por padrão, a função de agregação agregará um conjunto de registros possíveis definidos pela seleção. |
StructuredParameter |
StructuredParameter consiste em uma dimensão e, opcionalmente, em critérios de classificação no formato: (Dimension(Sort-type, Ordering)) A dimensão é um campo único e não pode ser uma expressão. A dimensão é usada para determinar a matriz de valores para a qual a expressão Aggr é calculada. Se critérios de classificação estiverem incluídos, a matriz de valores criada pela função Aggr, calculada para a dimensão, será classificada. Isso é importante quando a ordem de classificação afeta o resultado da expressão da função Aggr em que está delimitada. Para obter detalhes de como usar critérios de classificação, consulte Adicionando critérios de classificação à dimensão no parâmetro estruturado. |
SetExpression | Por padrão, a função de agregação agregará um conjunto de registros possíveis definidos pela seleção. Um conjunto de registros alternativos pode ser definido por uma expressão de análise. |
DISTINCT |
Se o argumento da expressão for precedido pelo qualificador distinct ou se não for usado nenhum qualificador, cada combinação distinta de valores de dimensão gerará somente um valor de retorno. Esta é a maneira como as agregações normais são feitas – cada combinação distinta de valores de dimensão gera uma linha no gráfico. |
NODISTINCT |
Se o argumento da expressão for precedido pelo qualificador nodistinct, cada combinação de valores de dimensão poderá gerar mais de um valor de retorno, dependendo da estrutura de dados subjacente. Se houver apenas uma dimensão, a função aggr retornará uma matriz com o mesmo número de elementos que o número de linhas nos dados de origem. |
Funções de agregação básicas, como Sum, Min e Avg, retornam um único valor numérico, enquanto a função Aggr() pode ser comparada à criação de um conjunto de resultados temporários em etapas (uma tabela virtual) com os quais outra agregação pode ser feita. Por exemplo, calculando uma média do valor de vendas ao somar as vendas por cliente em um comando Aggr() e depois calculando a média dos resultados somados: Avg(TOTAL Aggr(Sum(Sales),Customer)).
Limitações:
Cada dimensão em uma função Aggr() deve ser um campo único e não pode ser uma expressão (dimensão calculada).
Adicionando critérios de classificação à dimensão no parâmetro estruturado
Em sua forma básica, o argumento StructuredParameter na sintaxe da função Aggr é uma dimensão única. A expressão: Aggr(Sum(Sales, Month)) encontra o valor total das vendas para cada mês. No entanto, quando delimitada em outra função de agregação, pode haver resultados inesperados, a menos que sejam utilizados critérios de classificação. Isso porque algumas dimensões podem ser classificadas por ordem alfabética ou numérica, e assim por diante.
No argumento StructuredParameter da função Aggr, você pode especificar critérios de classificação na dimensão em sua expressão. Dessa forma, você impõe uma ordem de classificação na tabela virtual que é produzida pela função Aggr.
O argumento StructuredParameter tem a seguinte sintaxe:
(FieldName, (Sort-type, Ordering))
Parâmetros estruturados podem ser aninhados:
(FieldName, (FieldName2, (Sort-type, Ordering)))
O tipo de classificação pode ser: NUMERIC, TEXT, FREQUENCY ou LOAD_ORDER.
Os tipos de ordenação associados a cada tipo de classificação são os seguintes:
Tipo de classificação | Tipos de ordenação permitidos |
---|---|
NUMERIC | ASCENDING, DESCENDING ou REVERSE |
TEXT | ASCENDING, A2Z, DESCENDING, REVERSE ou Z2A |
FREQUENCY | DESCENDING, REVERSE ou ASCENDING |
LOAD_ORDER | ASCENDING, ORIGINAL, DESCENDING ou REVERSE |
Os tipos de ordenação REVERSE e DESCENDING são equivalentes.
Para o Tipo de classificação TEXT, os tipos de ordenação ASCENDING e A2Z são equivalentes, e DESCENDING, REVERSE e Z2A são equivalentes.
Para o Tipo de classificação LOAD_ORDER, os tipos de ordenação ASCENDING e ORIGINAL são equivalentes.