Перейти к основному содержимому

Анализ множеств

При создании выборки в приложении необходимо определить подмножество записей в данных. Функции агрегирования, такие как Sum(), Max(), Min(), Avg() и Count(), вычисляются на основе этого подмножества.

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

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

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

Выражения множества

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

Sum( {$<Year={2021}>} Sales )

Выражение множества состоит из комбинации следующих элементов.

  • Идентификаторы Идентификатор множества представляет выборку, определенную в другом месте. Он также представляет конкретное множество записей в данных. Это может быть текущая выборка, выборка из закладки или выборка из альтернативного состояния. Простое выражение множества состоит из одиночного идентификатора, например знака доллара США {$}, что означает все записи в текущей выборке.

    Примеры: $, 1, BookMark1, State2

    См.: Идентификаторы множества

  • Операторы Оператор множества можно использовать для создания объединений, разностей или пересечений между разными идентификаторами множеств. Таким образом, можно создать подмножество или супермножество выборок, определенных идентификаторами множеств.

    Примеры: +, -, *, /

    См.: Операторы множеств

  • Модификаторы Можно добавить модификатор множества в идентификатор множества, чтобы изменить его выборку. Модификатор также можно использовать самостоятельно, в таком случае он будет применяться к идентификатору по умолчанию. Модификатор необходимо заключать в угловые скобки <…>.

    Примеры: <Year={2020}>, <Supplier={ACME}>

    См.: Модификаторы множества

Элементы объединяются для формирования выражений множества.

Элементы в выражении множества

Элементы в выражении множества.

Это выражение множества строится из агрегирования Sum(Sales).

Первый операнд возвращает продажи за 2021 год для текущей выборки, на которую указывает идентификатор множества $ и модификатор, содержащий выборку 2021 года. Второй операнд возвращает значение Sales для Sweden и игнорирует текущую выборку, на которую указывает идентификатор множества 1.

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

Для получения полного описания синтаксиса см. Синтаксис выражений множества.

Примеры

Примеры, в которых объединены описанные выше элементы выражения множества, приводятся в следующих разделах:

Натуральные множества

Обычно выражение множества представляет множество записей в модели данных и выборку, определяющую этот набор данных. В таком случае множество называется натуральным.

Идентификаторы множеств, с модификаторами множеств или без, всегда представляют натуральные множества.

Однако выражение множества, использующее операторы множества, также представляет подмножество записей, но, как правило, уже не может быть описано как использующее выборку значений поля. Такое выражение является ненатуральным множеством.

Например, множество, заданное в {1-$}, не может всегда определяться как выборка. Поэтому оно не является натуральным множеством. Чтобы продемонстрировать это, можно загрузить следующие данные, добавить их в таблицу, а затем создать выборки с помощью фильтров.

Load * Inline [Dim1, Dim2, Number A, X, 1 A, Y, 1 B, X, 1 B, Y, 1];		 

Создавая выборки для Dim1 и Dim2, получается вид, показанный в следующей таблице.

Таблица с натуральными и ненатуральными множествами

Таблица с натуральными и ненатуральными множествами.

Выражение множества в первой мере использует натуральное множество: оно соответствует выборке, созданной в {$}.

Вторая мера отличается. В ней используется {1-$}. Невозможно создать выборку, соответствующую этому множеству, так как оно является ненатуральным.

Такое различие имеет ряд последствий:

  • Модификаторы множеств можно применять только к идентификаторам множеств. Их нельзя применить к произвольному выражению множества. Например, невозможно использовать выражение множества, так как: 

    { (BM01 * BM02) <Field={x,y}> }

    В данном случае обычные (круглые) скобки обозначают, что пересечение между BM01 и BM02 должно вычисляться до применения модификатора множества. Причина заключается в том, что отсутствует множество элементов, доступное для модификации.

  • Нельзя использовать ненатуральные множества в функциях элементов P() и E(). Эти функции возвращают множество элементов, но при этом невозможно вывести множество элементов из ненатурального множества.

  • Мера, использующая ненатуральное множество, не всегда приписывается правильному значению измерения, если модель данных включает много таблиц. Например, в следующей диаграмме несколько исключенных значений продаж приписаны правильным Country, а для других NULL указано как Country.

    Диаграмма с ненатуральным множеством

    Таблица с ненатуральным множеством.

    Правильность назначения зависит от модели данных. В данном случае номер невозможно назначить, если он относится к стране, исключенной из выборки.