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

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

Обычно при совершении выборки функции агрегирования, такие как Sum, Max, Min, Avg и Count, выполняют агрегирование совершенных выборок: текущие выборки. Ваши выборки автоматически определяют набор данных, в отношении которых выполняется агрегирование. С помощью анализа множеств можно определить группу, независимую от текущих выборок. Это может быть полезным в том случае, если необходимо узнать точное значение, например долю продукта на рынке по всем регионам, независимо от текущих выборок.

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

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

Создание выражений множества

Перед тем, как рассматривать различные аспекты примера анализа множеств, необходимо определить различие между выражением множества и анализом множеств:

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

Здесь вы видите пример анализа множеств: sum( {$<Year={2009}>} Sales ), в котором {$<Year={2009}>} является выражением множества.

Существует два общих синтаксических правила для выражения множества:

  • Выражение множества должно использоваться в функции агрегирования. В этом примере функцией агрегирования является sum(Sales).
  • Выражение множества должно быть заключено в скобки, {}. В этом примере выражением множества является: {$<Year={2009}>}.

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

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

Examples:  

Example 1:  

{$<Year={2009}>}

Выражение множества содержит идентификатор $ и модификатор <Year={2009>}. В этом примере оператор отсутствует. Выражение множества интерпретируется следующим образом: «Все записи в текущей выборке, которые принадлежат 2009 году».

Example 2:  

Sum({$<Year={2009}>+1<Country={'Sweden'}>} Sales)

Данное выражение множества содержит идентификатор $ и 1, оператор +, а также модификаторы <Year={2009}> и <Country={'Sweden'}>.

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

Примечание: Выражения множества можно использовать только в выражениях для диаграмм, но не в выражениях скрипта.

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

Идентификаторы

Идентификаторы определяют отношение между выражением множества и значениями поля или оцениваемым выражением.

В нашем примере sum( {$<Year={2009}>} Sales ) идентификатором является знак доллара $, он означает, что множество записей для оценки состоит из всех записей текущей выборки. Этот набор в дальнейшем фильтруется частью модификатора выражения множества. В более сложном выражении множества два идентификатора можно объединить с помощью оператора.

В этой таблице показано несколько обычных идентификаторов.

Идентификатор Описание
1 Представляет полное множество всех записей в приложении, независимо от выборок.
$ Представляет записи текущей выборки. Выражение множества {$}, таким образом, эквивалентно неутверждению выражения множества.
$1 Представляет предыдущую выборку. $2 представляет предыдущую предпоследнюю выборку и т. д.
$_1 Представляет следующую (стоящую впереди) выборку. $_2 представляет следующую предпоследнюю выборку и т. д.
BM01 Можно использовать любой ID закладки или имя закладки.
MyAltState Можно ссылаться на выборки, выполненные в другом состоянии, по их имени состояния.

В этой таблице показано несколько примеров различных идентификаторов.

Пример Результат
sum ({1} Sales) Возвращает общий объем продаж для документа, игнорируя выборки, но не измерение.

sum ({$} Sales)

Возвращает продажи для текущей выборки, т. е. это то же самое, что элемент sum(Sales).

sum ({$1} Sales)

Возвращает продажи для предыдущей выборки.

sum ({BM01} Sales)

Возвращает продажи для закладки с именем BM01.

Операторы

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

В этой таблице показаны операторы, которые можно использовать в выражениях множества.

Оператор Описание
+ Объединение. Данная бинарная операция возвращает множество, состоящее из записей, принадлежащих любому из двух операндов множества.
- Исключение. Данная бинарная операция возвращает множество записей, принадлежащих первому из двух операндов множества. Также, при использовании в качестве унарного оператора, она возвращает дополнительное множество.
* Пересечение. Данная бинарная операция возвращает множество, состоящее из записей, принадлежащих обоим операндам множества.
/ Симметрическая разность (XOR). Данная бинарная операция возвращает множество, состоящее из записей, принадлежащих любому из операндов множества, но не обоим.

В этой таблице показано несколько примеров с операторами.

Примеры Результаты
sum( {1-$} Sales ) Возвращает продажи для всего, исключенного выборкой.
sum( {$*BM01} Sales ) Возвращает продажи для пересечения между выборкой и закладкой BM01.
sum( {-($+BM01)} Sales )

Возвращает продажи, исключенные выборкой и закладкой BM01

Sum({$<Year={2009}>+1<Country={'Sweden'}>} Sales) Возвращает продажи за 2009 год в отношении текущей выборки и добавляет полный набор данных, связанных со страной Sweden , за все года.

Модификаторы

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

Модификатор множества изменяет выбор предыдущего идентификатора множества. Если отсутствует ссылка на идентификатор множества, состояние текущей выборки будет implicit.

В этой таблице показано несколько примеров с модификаторами.

Пример Результат
sum({$<OrderDate = DeliveryDate>} Sales) Возвращает продажи для текущей выборки, где OrderDate = DeliveryDate.

sum({1<Region = {US}>} Sales)

Возвращает продажи в регионе US, игнорируя текущую выборку.

sum({$<Region = >} Sales)

Возвращает продажи для выборки, но выборка в элементе Region удаляется.

sum({<Region = >} Sales)

Возвращает то же, что и в примере выше. Если идентификатор множества для изменения отсутствует, используется унаследованное состояние.

sum({$<Year={2000}, Region={“U*”}>} Sales) Возвращает продажи для текущей выборки, но с новыми выборками в элементах Year и Region.

Модификаторы множества для более детального описания модификаторов и их использования в более сложном анализе множеств.