Skip to main content
Woohoo! Qlik Community has won “Best in Class Community” in the 2024 Khoros Kudos awards!
Announcements
Nov. 20th, Qlik Insider - Lakehouses: Driving the Future of Data & AI - PICK A SESSION
cancel
Showing results for 
Search instead for 
Did you mean: 
pedromsouza
Creator II
Creator II

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 II
Creator II
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 II
Creator II
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 II
Creator II
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