Korzystanie z tabel krzyżowych
Tabela krzyżowa to często spotykany typ tabeli. Stanowi ona macierz wartości między dwiema ortogonalnymi listami danych nagłówka. Poniżej podano przykład takiej tabeli.
Przykład 1:
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 QlikView spowoduje utworzenie jednego pola dla kolumny Year i jednego pola dla każdego z miesięcy. Zazwyczaj nie takie działanie jest oczekiwane. Najlepiej byłoby wygenerować trzy pola — po jednym dla każdej z kategorii nagłówków (Year i Month) i jedno dla wartości danych wewnątrz macierzy.
W tym celu można dodać prefiks crosstable do instrukcji LOAD lub SELECT, na przykład:
crosstable (Month, Sales) LOAD * from ex1.xlsx;
W QlikView zwrócony zostanie następujący wynik:
Na początku tabeli krzyżowej często znajduje się kilka kolumn kwalifikujących, które należałoby odczytać w zrozumiały sposób. W tym przypadku istnieje jedna kwalifikująca kolumna: Year.
Przykład 2:
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 |
W tym przypadku pierwsze dwie kolumny od lewej to kolumny kwalifikujące, po których następują kolumny macierzy. 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 QlikView zwrócony zostanie następujący wynik: