Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
Декабрь 18, 2017, 07:37:32 pm

Автор Тема: Aggr и Total ( Qlikview )  (Прочитано 1972 раз)

Оффлайн d.pimkin

  • Новичок
  • *
  • Сообщений: 28
  • Рейтинг: +3/-0
    • Просмотр профиля
Aggr и Total ( Qlikview )
« : Апрель 09, 2015, 03:56:32 am »
Всем доброго времени суток!

Возник такой вопрос: как применить функцию AGGR для всех записей измерения?
Есть поле АТМ и EventDiff. Но не для всех АТМ есть EventDiff.
Вот мне нужно выбрать те, для которых его нет (тоже самое, что сумма равна 0, т.к. нулевых значений нет)

Следующий код результатов не выдает, т.к. не находит таких результатов. Можно ли как-нибудь aggr применить для всех записей? Или как-то по-другому решить задачу.

if(aggr((sum({<EventFromDateTime = {'>=$(vFromDate)<$(vToDate)'}>} EventDiff)),ATM)=0,ATM)Так тоже не получается...
=if(IsNull(EventDiff),ATM)

Оффлайн admin

  • Administrator
  • Hero Member
  • *****
  • Сообщений: 1005
  • Страна: ru
  • Рейтинг: +103/-0
    • Просмотр профиля
Re: Aggr и Total
« Ответ #1 : Апрель 09, 2015, 11:50:59 am »
День добрый.
Не совсем понятно, в каком виде вы хотите увидеть результат и с каких данных.
Для простого примера:
LOAD * INLINE [
    ATM, diff
    00002, 0:01:20
    00003, 1:00:00
    00004,
    00005, 0
    00006, 0:02:10
    00007, 0:03:11
    00008
    00009, 0
];
Простое выражение в списке
=if(diff=0 or diff='',ATM)даст "нулевые" АТМ.

Оффлайн d.pimkin

  • Новичок
  • *
  • Сообщений: 28
  • Рейтинг: +3/-0
    • Просмотр профиля
Re: Aggr и Total
« Ответ #2 : Апрель 10, 2015, 03:29:12 am »
Я понял, где у меня ошибка была: надо было AGGR применять на 2 измерения.

Неофициальный форум пользователей QlikView & Qlik Sense

Re: Aggr и Total
« Ответ #2 : Апрель 10, 2015, 03:29:12 am »

Оффлайн admin

  • Administrator
  • Hero Member
  • *****
  • Сообщений: 1005
  • Страна: ru
  • Рейтинг: +103/-0
    • Просмотр профиля
Re: Aggr и Total
« Ответ #3 : Апрель 10, 2015, 07:20:39 am »
Вы имели в виду случаи, когда для нескольких записей с одинаковым АТМ все diff нулевые?

Оффлайн d.pimkin

  • Новичок
  • *
  • Сообщений: 28
  • Рейтинг: +3/-0
    • Просмотр профиля
Re: Aggr и Total
« Ответ #4 : Апрель 10, 2015, 11:59:09 am »
Да, именно так. Простите, что сформулировал коряво, точнее не описал исходные данные.

Оффлайн admin

  • Administrator
  • Hero Member
  • *****
  • Сообщений: 1005
  • Страна: ru
  • Рейтинг: +103/-0
    • Просмотр профиля
Re: Aggr и Total
« Ответ #5 : Апрель 10, 2015, 12:06:23 pm »
 :) Да с данными было бы понятнее.
Подозреваю, что у многих читающих вопросов еще больше возникло по Aggr().
Если не трудно, можете выложить фрагмент кода и выражение для понимания сути разговора.

Оффлайн d.pimkin

  • Новичок
  • *
  • Сообщений: 28
  • Рейтинг: +3/-0
    • Просмотр профиля
Re: Aggr и Total
« Ответ #6 : Апрель 13, 2015, 12:26:31 am »
=if(isnull(aggr((sum({<EventFromDateTime = {'>=$(vFromDate)<$(vToDate)'}>}EventDiff)),ATM,hostid)),ATM)
Дело было в том, что, если в измерении AGGR применить только на поле ATM, а в выражении добавить только EventDiff, то те что null не показывались, т.к. таких пар измерение-выражение не было в таблице. Но, как только я добавил в AGGR еще одно поле (которое является ключем и имеет записи по всем АТМ), я получил результат, который и хотел.

Неофициальный форум пользователей QlikView & Qlik Sense

Re: Aggr и Total
« Ответ #6 : Апрель 13, 2015, 12:26:31 am »