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

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

Обычно при совершении выборки функции агрегирования, такие как 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 за все годы.

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

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

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

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

Модификаторы
Пример Результат
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.

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