Soma de linhas em tabelas dinâmicas
A tabela estática do QlikView traz opções para seus totais que vão de uma soma simples de linhas a um total de expressões calculadas. A tabela dinâmica do QlikView não traz essas opções. Os totais das tabelas dinâmicas são sempre calculados como totais de expressões.
Geralmente, esse é um aspecto favorável, uma vez que é razoavelmente raro que uma soma do total de linhas seja relevante quando os dois totais diferem.
Depois dessa advertência, veremos na seção a seguir um exemplo em que a soma do total de linhas não é o resultado desejado.
Exemplo:
Neste exemplo, há uma competição escolar onde equipes de três alunos ganham pontos por suas notas em três disciplinas distintas. A equipe pode selecionar a pontuação mais alta dentro do grupo para cada classe individual e, então, acrescentar as três pontuações mais altas para obter um total. Os dados a seguir foram lidos do script:
Uma tabela estática com Class como dimensão e Max(Score) como expressão produz a seguinte soma de linhas:
Se a tabela estática foi convertida para uma tabela dinâmica, que é sempre calculada como um total de expressão em vez de soma de linhas, haveria um problema:
Nesse caso específico, o total de 12 é o que esperamos e 5 é igualmente errado para os propósitos em questão. Nesse caso, a função Aggr pode ser usada na expressão, não a dimensão.
A expressão original é encerrada em uma função Aggr, usando a dimensão do gráfico adjacente também como uma dimensão na função Aggr. Agora este pacote é utilizado como argumento para uma agregação Sum. Agora a tabela irá mostrar o total esperado:
O segredo da função de agregação avançada é que, nas linhas individuais, ela resultará em apenas um valor único. Isso ocorre porque a dimensão, obviamente, só tem um valor possível em cada linha de dados comuns. Uma vez que a dimensão interna e a expressão são as mesmas do gráfico adjacente, cada valor será, é claro, exatamente o mesmo do resultado sem as funções encerradas Sum e de agregação avançadas.
Para a linha total, no entanto, a função de agregação retornará três valores, um para cada valor do campo de dimensão. Esses, por sua vez, serão somados pela agregação Sum. Embora formalmente ainda seja um total de expressão, o resultado é igual ao da soma de linhas.