Vai al contenuto principale

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:

  1. Aprire l'editor caricamento dati nell'app Scripting Tutorial.
  2. Fare clic sulla scheda Dates.
  3. Fare clic su Carica dati.
  4. In base allo script di caricamento scritto fino a questo momento, Qlik Sense carica 628 righe dal file di dati Dates.xlsx in Table2.

    Finestra di avanzamento del caricamento dati
    Data load progress window

  5. 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.
  6. È 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:

    Script di caricamento nella scheda Dates
    Load script in Dates tab.

  7. Fare clic su Carica dati.
  8. 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.

    Concatenazione nella finestra di avanzamento del caricamento dei dati
     Concatenation in data load progress window.

  9. Aprire il sistema di visualizzazione modello dati.
  10. Fare clic su Mostra anteprima.
  11. È stato creato solo Table2. Selezionare Table2. La tabella ha 256 righe.

    Sistema di visualizzazione modello dati che mostra Table2
    Data model viewer showing Table2.

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:

  1. Modificare l'istruzione LOAD per Table2a, aggiungendo Concatenate e aggiungendo il commento Week.
  2. 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.

  3. Fare clic su Carica dati.
  4. Aprire il sistema di visualizzazione modello dati.
  5. Ora è possibile vedere che Table2a non è stata creata.

  6. Fare clic su Table2 nel sistema di visualizzazione modello dati, quindi fare clic su Anteprima.
  7. La tabella dispone dei campi Date, Month, Quarter, Week e Year. Il campo Week è ancora visualizzato in quanto è stato caricato da Table2.

  8. 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.

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:

  1. 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.
  2. 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); 

  3. Fare clic su Carica dati.
  4. Aprire il sistema di visualizzazione modello dati.
  5. Ora è possibile vedere che le due tabelle sono completamente separate.

    Sistema di visualizzazione modello dati che mostra Table2 e Table 2a
    Data model viewer showing Table2 and Table 2a.

  6. 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.