Ir para conteúdo principal

Funções de agregação

A família de funções conhecida como funções de agregação consiste em funções que recebem vários valores de campo como entrada e que retornam um único resultado por grupo, no qual o agrupamento é definido por uma dimensão de gráfico ou uma cláusula group by na instrução de script.

Funções de agregação incluem Sum(), Count(), Min(), Max() e muito mais.

A maioria das funções de agregação pode ser usada no script de carregamento e em expressões do gráfico, mas a sintaxe é diferente.

Usando funções de agregação em um script de carga de dados

Funções de agregação só podem ser usadas dentro de comandos LOAD e SELECT.

Usando funções de agregação em expressões do gráfico

O parâmetro da função de agregação não deve conter outras funções de agregação, a menos que essas agregações internas contenham o qualificador TOTAL. Para agregações aninhadas mais avançadas, use a função avançada Aggr em combinação com uma dimensão especificada.

Uma função de agregação agrega sobre um conjunto de registros possíveis definidos pela seleção. No entanto, um conjunto de registros alternativos pode ser definido usando uma expressão na análise do conjunto.

Análise de conjunto e expressões de conjunto

Como agregações são calculadas

Uma agregação percorre os registros de uma tabela específica, agregando os registros nela. Por exemplo, Count(<Field>) contará o número de registros na tabela em que <Field> reside. Se você quiser agregar apenas os valores de campo distintos, precisará usar a cláusula distinct, como Count(distinct <Field>).

Se a função de agregação contiver campos de tabelas diferentes, a função de agregação fará um loop sobre os registros do produto cruzado das tabelas dos campos constituintes. Isso tem uma penalidade de desempenho e, por esse motivo, essas agregações devem ser evitadas, principalmente quando existem grandes quantidades de dados.

Agregação de campos chave

A forma como as agregações são calculadas significa que você não pode agregar campos chave porque não está claro qual tabela deve ser usada para a agregação. Por exemplo, se o campo <Key> vincula duas tabelas, não está claro se Count (<Key>) deve retornar o número de registros da primeira ou da segunda tabela.

No entanto, se você usar a cláusula distinct, a agregação será bem definida e poderá ser calculada.

Então, se você usar um campo chave dentro de uma função de agregação sem a cláusula distinct, o QlikView retornará um número que pode não ter sentido. A solução é usar a cláusula distinct ou usar uma cópia da chave: uma cópia que reside somente em uma tabela.

Por exemplo, nas tabelas a seguir, ProductID é a chave entre as tabelas.

Chave ProductID entre as tabelas Products e Details

Exemplo de seleções atuais

Count(ProductID) pode ser contado na tabela Products (que tem apenas um registro por produto – ProductID é a chave primária) ou pode ser contado na tabela Details (que provavelmente tem vários registros por produto). Se você quiser contar o número de produtos distintos, deverá usar Count(distinct ProductID). Se quiser contar o número de linhas em uma tabela específica, não use a chave.

Participe do Programa de Modernização do Analytics

Remove banner from view

Modernize sem comprometer seus valiosos aplicativos QlikView com o Programa de Modernização do Analytics. Clique aqui para mais informações ou entre em contato: ampquestions@qlik.com