Funções de agregação
A família de funções conhecidas como funções de agregação consiste em funções que recebem vários valores de campos como sua entrada e retornam um único resultado por grupo, onde 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 podem ser usadas no script de carga de dados 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 em 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 quiser agregar apenas os valores de campo distintos, você 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 percorrerá os registros do produto cruzado das tabelas dos campos constituintes. Como isso deteriora o desempenho, essas agregações devem ser evitadas, particularmente quando você tem grandes quantidades de dados.
Agregação de campos-chave
A maneira 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 para um campo chave vinculado entre duas tabelas.
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 fazer sentido. A solução é usar a cláusula distinct ou uma cópia da chave: uma cópia que resida em apenas uma tabela.
Por exemplo, nas seguintes tabelas, ProductID é a chave entre as tabelas.
Chaves ProductId entre as tabelas Products e Details

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 muito provavelmente tem vários registros por produto). Se você quiser contar o número de produtos distintos, deve usar o Count(distinct ProductID). Se você quiser contar o número de linhas em uma tabela específica, não deve usar a chave.
Agregações de campos chave contidos em três ou mais tabelas
O prefixo distinct funciona apenas com campos-chave que vinculam até duas tabelas. Ao agrupar uma agregação em um campo chave que existe em três ou mais tabelas, qualquer operação que exija informações de frequência para um campo retornará NULL. No caso de um campo chave vinculando três ou mais tabelas, uma cópia não-chave do campo deve ser usada.