Работа с перекрестными таблицами в скрипте загрузки данных

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

В данной теме описан порядок отмены сведения перекрестной таблицы. Это действие предусматривает разнесение частей таблицы по строкам с помощью подстановки префикса crosstable к оператору LOAD в скрипте загрузки данных.

Отмена сведения перекрестной таблицы с одним столбцом классификации

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

Перекрестная таблица с одним столбцом классификации
Year Jan Feb Mar Apr May Jun
2008 45 65 78 12 78 22
2009 11 23 22 22 45 85
2010 65 56 22 79 12 56
2011 45 24 32 78 55 15
2012 45 56 35 78 68 82

Если таблица просто загружается в программу Qlik Sense, результат будет представлять собой одно поле для элемента Year и по одному полю для каждого месяца. Это, как правило, не то, что нужно. Возможно, предпочтительнее создать три поля:

  • Столбец классификации в таблице выше, в данном случае Year, помечен зеленым цветом.
  • Поле атрибута, в данном случае содержащее названия месяцев Jan - Jun, помечено желтым цветом. Данному полю можно присвоить имя Month.
  • Значения матрицы данных помечены синим цветом. В данном случае они представляют данные о продажах, и полю можно присвоить имя Sales.

Для этого можно добавить префикс crosstable в операторы LOAD или SELECT, например:

crosstable (Month, Sales) LOAD * from ex1.xlsx;

При этом в программе Qlik Sense создается следующая таблица:

Таблица с префиксом crosstable, добавленным в операторы LOAD или SELECT
Year Month Sales
2008 Jan 45
2008 Feb 65
2008 Mar 78
2008 Apr 12
2008 May 78
2008 Jun 22
2009 Jan 11
2009 Feb 23
... ... ...

Отмена сведения перекрестной таблицы с двумя столбцами классификации

В этом случае слева находятся два столбца классификации, после которых следуют столбцы матрицы.

Перекрестная таблица с двумя столбцами классификации
Salesman Year Jan Feb Mar Apr May Jun
A 2008 45 65 78 12 78 22
A 2009 11 23 22 22 45 85
A 2010 65 56 22 79 12 56
A 2011 45 24 32 78 55 15
A 2012 45 56 35 78 68 82
B 2008 57 77 90 24 90 34
B 2009 23 35 34 34 57 97
B 2010 77 68 34 91 24 68
B 2011 57 36 44 90 67 27
B 2012 57 68 47 90 80 94

Число столбцов классификации можно задать в виде третьего параметра в префиксе crosstable следующим образом:

crosstable (Month, Sales, 2) LOAD * from ex2.xlsx;

При этом в программе Qlik Sense будет получен следующий результат:

Таблица, число столбцов классификации которой задано в виде третьего параметра в префиксе crosstable
Salesman Year Month Sales
A 2008 Jan 45
A 2008 Feb 65
A 2008 Mar 78
A 2008 Apr 12
A 2008 May 78
A 2008 Jun 22
A 2009 Jan 11
A 2009 Feb 23
... ... ... ...

See also: