Concatenazione
La concatenazione è un'operazione che combina due tabelle in un'unica tabella.
Le due tabelle vengono aggiunte l'una all'altra tramite impilamento, con una colonna per ciascun nome di colonna distinto. I dati non vengono modificati e la tabella risultante conterrà lo stesso numero di record delle due tabelle originali insieme. È possibile eseguire diverse operazioni concatenate in sequenza, affinché la tabella risultante sia ottenuta dalla concatenazione di più di due tabelle.
Concatenazione automatica
Se i nomi di campo e il numero dei campi di due o più tabelle caricate sono identici, Qlik Sense concatena automaticamente il contenuto delle diverse istruzioni in un'unica tabella.
Per la concatenazione automatica, il numero e i nomi dei campi devono essere identici. L'ordine delle due istruzioni LOAD è arbitrario, tuttavia alla tabella verrà assegnato il nome della tabella caricata per prima.
Procedere come indicato di seguito:
- Aprire l'editor caricamento dati nell'app Scripting Tutorial.
- Fare clic sulla scheda Dates.
- Fare clic su Carica dati.
- In una nuova riga dello script nella sezione Dates, copiare e incollare l'istruzione LOAD per Table2. Ciò comporterà che i dati verranno caricati due volte. Denominare Table2a la seconda tabella.
- Fare clic su Carica dati.
- Aprire il sistema di visualizzazione modello dati.
- Fare clic su Mostra anteprima.
In base allo script di caricamento scritto fino a questo momento, Qlik Sense carica 628 righe dal file di dati Dates.xlsx in Table2.
È anche possibile eliminare lo script esistente e copiare e incollare quanto segue:
Table2:
LOAD
"Date",
Month (Date) as "Month",
Quarter,
"Week",
"Year"
FROM [lib://DataFiles/Dates.xlsx]
(ooxml, embedded labels, table is Dates);
Table2a:
LOAD
"Date",
Month (Date) as "Month",
Quarter,
"Week",
"Year"
FROM [lib://DataFiles/Dates.xlsx]
(ooxml, embedded labels, table is Dates);
Lo script avrà questo aspetto:
Qlik Sense non carica Table2 e poi Table2a. Invece, riconosce che Table2a ha gli stessi nomi di campo e il numero di campi di Table2. Quindi aggiunge i dati di Table2a a Table2 ed elimina la tabella Table2a. Il risultato è che ora Table2 ha 1.256 righe.
È stato creato solo Table2. Selezionare Table2. La tabella ha 256 righe.
Concatenazione forzata
Anche se due o più tabelle non includono esattamente lo stesso set di campi, è comunque possibile impostare Qlik Sense in modo da concatenare le due tabelle. Questa operazione viene eseguita utilizzando il prefisso Concatenate nello script, il quale consente di concatenare una tabella con un'altra tabella con nome o con l'ultima tabella creata.
Procedere come indicato di seguito:
- Modificare l'istruzione LOAD per Table2a, aggiungendo Concatenate e aggiungendo il commento Week.
- Fare clic su Carica dati.
- Aprire il sistema di visualizzazione modello dati.
- Fare clic su Table2 nel sistema di visualizzazione modello dati, quindi fare clic su Anteprima.
- Fare clic su Week in Table2. L'anteprima mostra che il numero di valori non null per il campo è 628. Tuttavia, se si fa clic su qualsiasi altro campo, si noterà che il numero di valori non null è 1256. Week è stato caricato una sola volta da Table2. Il numero di valori, o record, è la somma del numero di record in Table2 e Table2a.
Lo script sarà simile al seguente:
Table2a:
Concatenate LOAD
"Date",
Month (Date) as "Month",
Quarter,
// "Week",
"Year"
FROM [lib://DataFiles/Dates.xlsx]
(ooxml, embedded labels, table is Dates);
L'aggiunta di un commento Week garantisce che le tabelle non siano identiche.
Ora è possibile vedere che Table2a non è stata creata.
La tabella dispone dei campi Date, Month, Quarter, Week e Year. Il campo Week è ancora visualizzato in quanto è stato caricato da Table2.
Come impedire la concatenazione
Se i nomi di campo e il numero dei campi di due o più tabelle caricate sono identici, Qlik Sense concatena automaticamente il contenuto delle diverse istruzioni in un'unica tabella. Per evitare che ciò si verifichi, è necessario utilizzare un'istruzione NoConcatenate. In questo modo la tabella caricata con l'istruzione LOAD o SELECT associata non verrà concatenata con la tabella esistente.
Procedere come indicato di seguito:
- Per poter separare completamente il contenuto delle due tabelle, aggiungere NoConcatenate all'istruzione LOAD in Table2a, e rinominare i campi in modo che Qlik Sense non crei una chiave sintetica basata sui campi corrispondenti. Rimuovere il commento Week in Table2 in modo che le due tabelle abbiano gli stessi campi.
- Fare clic su Carica dati.
- Aprire il sistema di visualizzazione modello dati.
- Una volta terminata la dimostrazione sulla concatenazione, la tabella Table2a non è più necessaria. Eliminare tutte le righe nell'istruzione LOAD per Table2a, quindi fare clic su Carica dati.
Lo script sarà simile al seguente:
Table2:
LOAD
"Date",
Month (Date) as "Month",
Quarter,
"Week",
"Year"
FROM [lib://DataFiles/Dates.xlsx]
(ooxml, embedded labels, table is Dates);
Table2a:
NoConcatenate LOAD
"Date" as "Date2",
Month (Date) as "Month2",
Quarter as "Quarter2",
"Week" as "Week2",
"Year" as "Year2"
FROM [lib://DataFiles/Dates.xlsx]
(ooxml, embedded labels, table is Dates);
Ora è possibile vedere che le due tabelle sono completamente separate.