С анализом множеств сталкивается каждый разработчик, который пересекает рубеж от новичка к более продвинутому разработчику. Действительно, один из сложных моментов в изучении Qlik — создание выражений для анализа множеств (Set Analysis), но именно это открывает множество возможностей в разработке приложений, поэтому в этой статье рассмотрим основы теории Set Analysis.

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

Анализ множеств (Set Analysis) в Qlik позволяет обрабатывать ограниченный набор данных, на которые не влияют текущие выбранные данные (фильтры, которые мы применили к данным в нашем приложении). Фактически, множества задают контекст в выражении, в разрезе которого мы анализируем данные.

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

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

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

http://livingqlikview.com/wp-content/uploads/2017/04/Set_Analysis_What_Is_Pic_01.jpg

Так, здесь показаны продажи по Quebec, хотя эти значения не выбраны в панели фильтрации данных.

http://livingqlikview.com/wp-content/uploads/2017/04/Set_Analysis_What_Is_Pic_02.jpg

Сравнение данных по времени будет очень сложным без применения концепции анализа множеств.

http://livingqlikview.com/wp-content/uploads/2017/04/Set_Analysis_What_Is_Pic_03.jpg

Итак, здесь мы смотрим на данные месяц текущего года к месяцу прошлого года.

http://livingqlikview.com/wp-content/uploads/2017/04/Set_Analysis_What_Is_Pic_04.jpg

Как работает анализ множеств

Надо отметить, что синтаксис анализа множеств в Qlik не так прост. Выражения анализа множеств всегда заключаются в фигурные скобки с использованием функций агрегирования, таких как sum(), avg(), max(), min(), а также only().

http://livingqlikview.com/wp-content/uploads/2017/04/Set-Analysis-Diagram.jpg

НА ЗАМЕТКУ! Только в анализе множеств в Qlik используются фигурные скобки.

Итак, типовая структура выражения с анализом множеств имеет следующую структуру:

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

 

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

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

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

Операторы

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

Типы операторов

+

Объединение. Данная операция возвращает множество, состоящее из записей, принадлежащих любому из двух операндов множества. http://livingqlikview.com/wp-content/uploads/2017/04/Set_Analysis_Venn-Union.jpg

Исключение. Данная операция возвращает множество записей, принадлежащих первому из двух операндов множества. Также при использовании в качестве унарного оператора, она возвращает дополнительное множество.

http://livingqlikview.com/wp-content/uploads/2017/04/Set_Analysis_Venn-Exclusion.jpg

*

Пересечение. Данная операция возвращает множество, состоящее из записей, принадлежащих обоим операндам множества.

http://livingqlikview.com/wp-content/uploads/2017/04/Set_Analysis_Venn-Intersection.jpg

/

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

http://livingqlikview.com/wp-content/uploads/2017/04/Set_Analysis_Venn-Symmetric-Difference.jpg

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

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

Элемент списка и расширенный поиск

Наиболее распространенным случаем является выборка, основанная на списке значений поля, заключенном в фигурные скобки, значения разделены запятыми. Например: <Year = {2007, 2008}>. Здесь фигурные скобки определяют множество элементов, в котором элементы могут быть значениями поля или поисками значений поля. Поиск всегда определяется использованием двойных кавычек. Например, элемент <Ingredient = {«*Garlic*»}> выберет все ингредиенты, включая строку «чеснок». В поиске учитывается регистр, поиск выполняется для всех исключенных значений.

Специальные элементы: P() и E()

P() и E() – специальные элементы, которые помогают определить множество значений поля с помощью вложенного определения множества. Они представляют множество элементов возможных значений и исключенные значения поля, соответственно. В скобках можно указать одно выражение множества и одно поле. Например: P({1} Customer). Эти функции не могут использоваться в других выражениях.

Эта была общая часть по работе с анализом множеств в Qlik. В следующий раз расскажу в примерах, как работать с Set Analysis, а пока предлагаю воспользоваться библиотекой статей по анализу множеств, доступной здесь на Data-Daily:

На этом все на сегодня! Отличных вам разработок с Qlik.