Сегодня хочу рассказать об основах группировки данных в скрипте загрузки Qlik. QlikView и Qlik Sense хорошо справляются с большими объемами данных, и можно, например, загружать миллионы строк чеков, чтобы во время аналитики провалиться в детали. Но иногда такие детальные данные не нужны, и можно их агрегировать – сегодня рассмотрим способы такой группировки.

Группировка данных в Qlik: Введение

Группировку данных будем рассматривать на примере простых данных некой розничной компании, в которой есть данные со статистикой визитов в магазин и чеков в разных временных разрезах (день, неделя, месяц):

Группировка данных в Qlik

Допустим данные мы подгружаем в модель из qvd файла «Sainsburys_DATA.qvd» и хотим группировать данные по месяцам.

Итак, давайте сначала добавим новый лист и загрузим туда скрипт:

Группировка данных в Qlik

Перейдем во вторую вкладку:

Группировка данных в Qlik

И данные из «Sainsburys_DATA.qvd», которые и будем группировать по месяцам:

Группировка данных в Qlik

Группировка данных в Qlik по одному критерию

Итак, давайте начнем группировку:

Группировка данных в Qlik

  1. Пишем строку «Group by Sains.Month;» — вот мы и сгруппировали данные, но нам нужно сделать дополнительные манипуляции в скрипте, чтобы получить значимые для аналитики данные:
  2. Нам совершенно точно нужно загрузить «Sains.Amount», но для того, чтобы Qlik понял, какую сумму загружать, если наш покупатель за месяц делал несколько покупок, нам нужно каким-то образом агрегировать сумму покупок. Пишем выражение: «sum(Sains.Amount)» — это будут все продажи в течении месяца. Мы также можем агрегировать и другими функциями – максимальное значение или среднее, но агрегация при группировке должна быть сделана.
  3. Также напишем выражения «sum(Sains.Visits)», чтобы вычислить количество визитов в месяц, и «max(Sains.Amount)», чтобы получить наибольшее значение за месяц.

На заметку! Поле, по которому мы группируем (в нашем случае – месяц) загружается без какой-либо агрегации.

  1. Получаем такой скрипт:

  1. Делаем перезагрузку данных и получаем все нужные данные, сгруппированные по месяцам:

Группировка данных в Qlik

  1. Единственное, что нам пока не нравится – названия столбцов, которые названы формулами – добавим в скрипт алиасы и все будет готово:

Группировка данных в Qlik по двум критериям

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

  1. Добавляем поле «Sains.Shopper» в загрузку, без агрегации. А в Group by после запятой прописываем второе поле для группировки «Sains.Shopper».
  2. Кроме того, поработаем с годом и месяцем, чтобы по ним можно было делать отдельные выборки в приложении – завернем их в функцию only().

В итоге получим код:

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

Спасибо, что прочитали до конца.

Хороших вам разработок!