Praca ze tabelami krzyżowymi w skrypcie ładowania danych

Tabela krzyżowa to często spotykany typ tabeli. Stanowi ona macierz wartości między dwiema ortogonalnymi listami danych nagłówka. Jeśli chcesz utworzyć asocjację między tymi danymi a innymi tabelami danych, zwykle nie jest to optymalny format danych.

W tym temacie opisano sposób cofania przestawienia danych w formacie tabeli krzyżowej, czyli transponowania jej części na wiersze za pomocą prefiksu crosstable w instrukcji LOAD w skrypcie ładowania danych.

Cofanie przestawiania tabeli krzyżowej z jedną kolumną kwalifikującą

Na początku tabeli krzyżowej często znajduje się kilka kolumn kwalifikujących, które należy odczytywać bezpośrednio. W tym przypadku mamy jedną kolumnę kwalifikującą Year oraz macierz danych sprzedaży dla poszczególnych miesięcy.

Tabela krzyżowa z jedną kolumną kwalifikującą
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

Zwykłe załadowanie takiej tabeli do programu Qlik Sense spowoduje utworzenie jednego pola dla kolumny Year i jednego pola dla każdego z miesięcy. Zazwyczaj nie takie działanie jest oczekiwane. Wygodniej byłoby wygenerować trzy pola:

  • Kolumnę kwalifikującą, w tym przypadku Year, zaznaczoną w powyższej tabeli na zielono.
  • Pole atrybutu, w tym przypadku reprezentowane przez nazwy miesięcy Jan - Jun zaznaczone na żółto. Polu można nadać nazwę Month.
  • Wartości macierzy danych, zaznaczone na niebiesko. W tym przypadku reprezentują one dane sprzedaży, można im nadać nazwę Sales.

Efekt ten można osiągnąć, dodając prefiks crosstable do instrukcji LOAD lub SELECT, na przykład:

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

Spowoduje to utworzenie w programie Qlik Sense następującej tabeli:

Tabela z prefiksem crosstable dodanym do instrukcji LOAD lub 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
... ... ...

Cofanie przestawiania tabeli krzyżowej z dwiema kolumnami kwalifikującymi

W tym przypadku pierwsze dwie kolumny od lewej to kolumny kwalifikujące, po których następują kolumny macierzy.

Tabela krzyżowa z dwiema kolumnami kwalifikującymi
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

Liczbę kolumn kwalifikujących można podać jako trzeci parametr prefiksu crosstable w następujący sposób:

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

W programie Qlik Sense zwrócony zostanie następujący wynik:

Tabela z kolumnami kwalifikującymi podanymi jako trzeci parametr prefiksu 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: