Как получить отличное значение вызовов из отдельного списка идентификаторов?

У меня следующая проблема: предположим, что в QlikView загружена следующая таблица:

Таблица в Qlikview

Теперь я хочу рассчитать количество различных идентификаторов, «звонков более 60 секунд» и количество различных «звонков от других более 60 секунд», если «звонки более 60 секунд» равны 0.

Используя For count(distinct(if([calls over 60 sec]>0, ID))), я получаю = 2, что правильно.

Теперь for count(distinct(if([calls over 60 sec]=0 and [calls from other over 60 sec]>0, ID))) я получаю 3.

Но ответ, который я ищу, - 1. Потому что в целом месяцы только 1 идентификатор вызывается другим.

Или мне нужно Set выражение? По сути, я хочу, чтобы для выбранного месяца вычислялось определенное количество идентификаторов, а также условия выше.

Я благодарен за каждый ответ.


person mherdt    schedule 13.01.2019    source источник
comment
Потому что в течение всего месяца только 1 идентификатор вызывается другим. так что вы хотите агрегировать по месяцам? но какая агрегация (сумма, среднее, максимальное, минимальное...)?   -  person EldadT    schedule 14.01.2019
comment
Да, я хочу сделать агр по месяцам. У меня есть список monty excel с этой структурой выше. Идентификаторы могут меняться в течение месяца. Поэтому, если я выберу месяц 6,7,8 в qlik, мне нужен отдельный список идентификаторов и вызовы на основе этого списка в течение 60 секунд и т. д.   -  person mherdt    schedule 14.01.2019


Ответы (1)


Пытаться,

COUNT ( DISTINCT { < [calls over 60 sec]={"0"} , [calls from other over 60 sec] = { ">0" }  > }  ID)

И аггр:

// SUM ( // sometimes

Aggr (
COUNT ( DISTINCT { < [calls over 60 sec]={"0"} , [calls from other over 60 sec] = { ">0" }  > }  ID)
, year, month
)

// )

И, пожалуйста, не используйте "ЕСЛИ" в формулах.

person Chernov    schedule 15.01.2019
comment
Я попробовал код. Это работает, если я выберу 1 месяц. Но как только я выбираю больше месяцев, начинается двойной счет. - person mherdt; 24.01.2019