Вложенные агрегирования с функцией агрегирования

Вложенности с префиксом TOTAL не всегда достаточно. Для более общей вложенности необходимо использовать функцию расширенного агрегирования данных вместе с вычисляемыми размерами.

Пример:  

Следующие данные прочитаны из скрипта:

На основе этих данных возникает очевидный вопрос: «Сколько клиентов у каждого торгового агента?».

На этот вопрос легко ответить, используя стандартную таблицу QlikView:

На основе полученных данных могут появиться новые вопросы: "How may sales representatives have only a single customer? У скольких трое и более клиентов?.

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

Необходимо просто найти способ использовать столбец выражения в приведенной выше диаграмме в качестве измерения новой диаграммы. Это можно получить с помощью функции расширенного агрегирования.

Чтобы выполнить вычисления по первой диаграмме в качестве вычисления внутренней диаграммы в новой диаграмме, необходимо использовать следующий оператор для измерения:

=Aggr(Count(Customer),SalesRep)

А затем необходимо ввести следующее выражение для новой диаграммы:

Count(Distinct SalesRep)

Префикс DISTINCT необходим, поскольку приложение QlikView будет считать число строк в таблице ниже.

В получившейся в результате таблице находится ответ на вопрос «Сколько торговых агентов имеют 1, 2, 3 и более клиентов?»:

Необходимо отметить две вещи:

  1. Для второй диаграммы не требуется первая диаграмма. Она полностью самодостаточна с агрегированием первого порядка, определенным в пределах измерения.
  2. Возможности вложенности этим не ограничиваются. Аргументы измерения функции расширенного агрегирования могут, конечно, содержать определенные вычисляемые измерения, в свою очередь использующие функцию расширенного агрегирования. Однако при передаче третьего уровня агрегирования довольно просто запутаться.