Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
Октябрь 23, 2018, 09:04:47 am

Автор Тема: функция aggr и set analysis  (Прочитано 2822 раз)

Оффлайн Andrey S

  • Новичок
  • *
  • Сообщений: 27
  • Страна: ru
  • Рейтинг: +10/-0
    • Просмотр профиля
функция aggr и set analysis
« : Сентябрь 12, 2016, 05:20:27 pm »
Дорогие коллеги,
столкнулся со следующей проблемой в применении aggr, по которой прошу вашего подсказа или ссылки на источник информации для решения.

1. Aggr(sum(выражение), Номенклатура).
2. Действует (и имеет значение) выборка месяца.
3. Выражение строится на сет анализе, "отменяющем" действие выборки, -  для позиций номенклатуры вычисляются некие значения(продажи предыдущих - за пределом выборки - периодов).
4. Аггрегирую по номенклутуре для того, чтобы получить значения для склада.

Насколько я могу судить, aggr вычисляет Null для позиций, которые не продавались в текущем месяце и отрезаны, тем самым, выборкой по месяцу. Такое может быть? Или все же мне надо разбираться с выражением?

Написал максимально общо, поскольку предполагаю, что ответ все-таки на поверхности. Если не так - запощу модель. Спасибо всем, кто откликнулся!

Оффлайн admin

  • Administrator
  • Hero Member
  • *****
  • Сообщений: 1207
  • Страна: ru
  • Рейтинг: +128/-0
    • Просмотр профиля
Re: функция aggr и set analysis
« Ответ #1 : Сентябрь 13, 2016, 07:05:31 pm »
Привет, пример не помешал бы, во вложении или текстом скрипта с load inline.  ;)

Оффлайн Andrey S

  • Новичок
  • *
  • Сообщений: 27
  • Страна: ru
  • Рейтинг: +10/-0
    • Просмотр профиля
Re: функция aggr и set analysis
« Ответ #2 : Сентябрь 14, 2016, 04:50:56 pm »
Привет) очень большой массив данных у меня, поэтому решил словами проблему описать - вдруг и так понятно о чем речь.

В итоге сам нарыл решение

Sum (All <поле> aggr(<выражение>, поле))
ПРефикс All отменяет текущие выборки и Set-выражение вычисляется и аггрегируется для всех значений поля.
Еще, кажется, попадалась инфо о том, что All может не поддерживатся в новых версиях (в QV12 у меня нормально сработало), алтернатива: {1} Total.



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

Re: функция aggr и set analysis
« Ответ #2 : Сентябрь 14, 2016, 04:50:56 pm »

Оффлайн millik

  • Наставник
  • **
  • Сообщений: 81
  • Страна: by
  • Рейтинг: +35/-0
    • Просмотр профиля
Re: функция aggr и set analysis
« Ответ #3 : Сентябрь 27, 2016, 08:46:36 pm »
Не знаю про ALL, но TOTAL не отменяет текущие выборки.
TOTAL рассчитывает выражение без учета измерений таблицы/диаграммы, выборки всё равно влияют.

Из оф. доков
Цитировать
Если слово TOTAL стоит перед аргументами функции, вычисление выполняется
по всем возможным значениям, указанным в текущих выборках, а не только в тех,
которые относятся к значению текущего измерения, т. е. измерения диаграммы
игнорируются.

После префикса TOTAL может быть указан список, включающий одно или
несколько имен полей в угловых скобках <fld>. Эти имена полей должны быть
поднабором переменных измерений диаграммы.

Чтобы отменить выборки по конкретному полю можно в SA написать "{$<[ИмяПоля]=>}" это выражение убирает выборку и использует все значения поля.

Оффлайн Andrey S

  • Новичок
  • *
  • Сообщений: 27
  • Страна: ru
  • Рейтинг: +10/-0
    • Просмотр профиля
Re: функция aggr и set analysis
« Ответ #4 : Сентябрь 28, 2016, 06:48:02 pm »
А я же писал, что не просто Total, а {1} Total
Не нахожу мануал ,в котором я почерпнул инфо, как попадется еще раз, дам ссылку в этой ветке.

Оффлайн Andrey S

  • Новичок
  • *
  • Сообщений: 27
  • Страна: ru
  • Рейтинг: +10/-0
    • Просмотр профиля
Re: функция aggr и set analysis
« Ответ #5 : Сентябрь 29, 2016, 12:56:23 pm »
Нашел.
"В предыдущих версиях QlikView префикс all мог указываться до expression. Это эквивалентно
использованию {1} total. В этом случае вычисление будет выполнено для всех значений поля в
документе, измерения графика и текущие выборки будут проигнорированы. (Всегда возвращается
одинаковое значение независимо от логического состояния документа.) При использовании префикса
all набор выражений не может использоваться, поскольку префикс all уже определяет набор. По
причинам совместимости префикс all работает в данной версии QlikView, но может быть удален в
следующих версиях."

Вот в этом руководстве
Версия 11.0 для Microsoft Windows®
Первое издание, Лунд, Швеция, октябрь 2011 г.
Подготовлено QlikTech International AB

Оффлайн admin

  • Administrator
  • Hero Member
  • *****
  • Сообщений: 1207
  • Страна: ru
  • Рейтинг: +128/-0
    • Просмотр профиля
Re: функция aggr и set analysis
« Ответ #6 : Сентябрь 29, 2016, 07:03:19 pm »
По причинам совместимости префикс all работает в данной версии QlikView, но может быть удален в
следующих версиях."

Вот в этом руководстве
Версия 11.0 для Microsoft Windows®
Первое издание, Лунд, Швеция, октябрь 2011 г.
Подготовлено QlikTech International AB

 :)
Из последнего руководства по Qlik Sense
Цитировать
ALL qualifier

In QlikView, the ALL qualifier may occur before an expression. This is equivalent to using {1} TOTAL. In such a case the calculation will be made over all the values of the field in the document, disregarding the chart dimensions and current selections. The same value is always returned regardless of the logical state in the document. If the ALL qualifier is used, a set expression cannot be used, since the ALL qualifier defines a set by itself. For legacy reasons, the ALL qualifier will still work in this version of Qlik Sense, but may be removed in coming versions.

http://help.qlik.com/en-US/sense/3.1/Subsystems/Hub/Content/Scripting/functions-statements-not-recommended.htm

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

Re: функция aggr и set analysis
« Ответ #6 : Сентябрь 29, 2016, 07:03:19 pm »