Utilizzo delle tabelle incrociate nello script di caricamento dei dati

Una tabella incrociata è un tipo comune di tabella contenente una matrice di valori tra due elenchi ortogonali di dati di intestazione. Generalmente non è il formato dati ottimale se si desidera associare i dati ad altre tabelle di dati.

Questo argomento descrive come trasformare tramite UnPivot una tabella incrociata, ossia trasporne parti in righe, utilizzando il prefisso crosstable per un'istruzione LOAD nello script di caricamento dei dati.

UnPivot di una tabella incrociata con una colonna di qualifica

Una tabella incrociata è spesso preceduta da un certo numero di colonne di qualifica, che devono essere lette in modo diretto. In questo caso vi è una colonna di qualifica, Year, e una matrice di dati sulle vendite per mese.

Tabella incrociata con una colonna di qualifica
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

Se questa tabella viene semplicemente caricata in Qlik Sense, il risultato sarà un campo per Year e un campo per ciascun mese. In genere, ciò non corrisponde al risultato desiderato. È probabilmente preferibile generare tre campi:

  • La colonna di qualifica, in questo caso Year, evidenziata in verde nella tabella precedente.
  • Il campo attributo, che in questo caso è rappresentato dai nomi dei mesi Jan - Jun, evidenziato in giallo. Questo campo può essere giustamente denominato Month.
  • I valori della matrice dei dati, evidenziati in blu. In questo caso contiene i dati sulle vendite, quindi può essere denominato Sales.

Ciò può essere ottenuto aggiungendo al prefisso crosstable l'istruzione LOAD o SELECT, ad esempio:

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

Ciò crea la seguente tabella in Qlik Sense:

Tabella con prefisso crosstable aggiunto all'istruzione LOAD o 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
... ... ...

UnPivot di una tabella incrociata con due colonne di qualifica

In questo caso vi sono due colonne di qualifica a sinistra, seguite dalle colonne della matrice.

Tabella incrociata con due colonne di qualifica
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

Il numero di colonne di qualifica può essere indicato come il terzo parametro del prefisso crosstable come segue:

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

Questo crea il seguente risultato in Qlik Sense:

Tabella con colonne di qualifica indicate come terzo parametro del prefisso 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: