Qlik Community

Ask a Question

Brasil

Announcements
Join us at the Cloud Data and Analytics Tour! REGISTER TODAY
cancel
Showing results for 
Search instead for 
Did you mean: 
pedromsouza
Creator
Creator

Dúvida "Nested aggregation not allowed"

sum(MEDIA_TRIENIO)/Sum(Total <DESC_TIPO_UNIDADE> Aggr(Fractile(IPS, 0.75),DESC_TIPO_UNIDADE))

 

Prezados,

Esta expressão está funcionando. Calcula MEDIA_TRIENIO da linha pelo melhor quartil do grupo DESC_TIPO_UNIDADE.

A questão é que eu quero também calcular a média resultante deste cálculo por grupo. 

Tentei:

avg(total <DESC_TIPO_UNIDADE>
sum(MEDIA_TRIENIO)/Sum(Total <DESC_TIPO_UNIDADE> Aggr(Fractile(IPS, 0.75),DESC_TIPO_UNIDADE))
)

Dá nested aggregation not allowed.

Também tentei:

avg(aggr(
sum(MEDIA_TRIENIO)/Sum(Total <DESC_TIPO_UNIDADE> Aggr(Fractile(IPS, 0.75),DESC_TIPO_UNIDADE))
,DESC_TIPO_UNIDADE))


Desta forma retorna, mas valor incorreto. 

Qliking since '09
1 Solution

Accepted Solutions
pedromsouza
Creator
Creator
Author

Gerou um número que eu nem consegui entender a lógica rsrs

Montei de um jeito que parece que funcionou. Estou validando direitinho...

sum(Total <DESC_TIPO_UNIDADE> MEDIA_TRIENIO)/Sum(Total <DESC_TIPO_UNIDADE> Aggr(Fractile(IPS, 0.75),DESC_TIPO_UNIDADE))
/Count(TOTAL <DESC_TIPO_UNIDADE> DESC_LOTACAO)

Qliking since '09

View solution in original post

4 Replies
TiagoCardoso
Creator II
Creator II

Boa tarde,

 

SUM, AVG, MIN, MAX, entre outras são funções de agregação, porando você não pode utilizá-las desta maneira.

 

Como você quer fazer uma média de uma soma e tal, aconselho vc substituir o AVG pelo RangeAVG e creio que te ajudará.

 

Ou seja, RANGEAVG( SUM(Sua expressão))

pedromsouza
Creator
Creator
Author

Prezado,

O RANGEAVG funciona, mas não consegui agrupar por desc_tipo_unidade.

Seria a média daquela expressão por grupo desta coluna. 

Qliking since '09
TiagoCardoso
Creator II
Creator II

Boa noite.

 

Uma boa maneira de se chegar no resultado, seria você criar uma tabela simples e colocar essa expressão:

sum(MEDIA_TRIENIO)/Sum(Total <DESC_TIPO_UNIDADE> Aggr(Fractile(IPS, 0.75),DESC_TIPO_UNIDADE))

Daí coloca o totalizador de expressão como SUM e vê se dá o mesmo resultado que nem estava dando antes, e depois muda esse totalizador para média, para saber qual valor ele apresenta.

A partir daí você pode pegar essa expressão abaixo e tentar colocar o TOTAL nela

avg(TOTAL aggr(
sum(MEDIA_TRIENIO)/Sum(Total <DESC_TIPO_UNIDADE> Aggr(Fractile(IPS, 0.75),DESC_TIPO_UNIDADE))
,DESC_TIPO_UNIDADE))
pedromsouza
Creator
Creator
Author

Gerou um número que eu nem consegui entender a lógica rsrs

Montei de um jeito que parece que funcionou. Estou validando direitinho...

sum(Total <DESC_TIPO_UNIDADE> MEDIA_TRIENIO)/Sum(Total <DESC_TIPO_UNIDADE> Aggr(Fractile(IPS, 0.75),DESC_TIPO_UNIDADE))
/Count(TOTAL <DESC_TIPO_UNIDADE> DESC_LOTACAO)

Qliking since '09

View solution in original post