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

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

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

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

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

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

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

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

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

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

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

Пример: Внутреннее выражение множества

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

Пример: Внешнее выражение множества

{<Year={2021}>} Sum(Sales) / Count(distinct Customer)

Для получения дополнительной информации о внутренних и внешних выражениях множеств см. Внутренние и внешние выражения множества.

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

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

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

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

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

В нашем примере 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.

Примеры:  

Примеры и результаты
MyField Результат
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.

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

Помогла ли вам эта страница?

Если вы обнаружили какую-либо проблему на этой странице и с ее содержанием — будь то опечатка, пропущенный шаг или техническая ошибка, сообщите нам об этом, чтобы мы смогли ее исправить!

Присоединяйтесь к программе модернизации аналитики

Remove banner from view

Модернизируйте ваши важные приложения QlikView без ущерба с помощью программы модернизации аналитики. Щелкните здесь для получения дополнительной информации или свяжитесь с нами: ampquestions@qlik.com