Zusammenfassung von Tabellen
Bei der Zusammenfassung von Tabellen werden zwei Tabellen zu einer kombiniert.
Die beiden Tabellen werden mit einer Spalte für jeden distinkten Spaltennamen zusammengefügt. Die Daten werden nicht geändert und die entstehende Tabelle enthält genauso viele Datensätze wie die beiden ursprünglichen Tabellen zusammen. Es können auch mehr als zwei Tabellen zusammengefasst werden, indem der Zusammenfassungsvorgang mehrmals nacheinander ausgeführt wird.
Automatische Zusammenfassung
Stimmen bei zwei oder mehr geladenen Tabellen die Zahl der Felder und die Feldnamen genau überein, fasst Qlik Sense den Inhalt der verschiedenen Befehle automatisch zu einer Tabelle zusammen.
Die Anzahl und die Namen der Felder müssen exakt übereinstimmen, damit eine automatische Zusammenfassung stattfinden kann. Die Reihenfolge der zwei LOAD-Anweisungen ist beliebig, aber die Tabelle erhält den Namen der zuerst geladenen Tabelle.
Gehen Sie folgendermaßen vor:
- Öffnen Sie den Dateneditor in der Scripting Tutorial App.
- Klicken Sie auf die Registerkarte Dates.
- Klicken Sie auf Daten laden.
- In einer neuen Zeile im Skript im Abschnitt Dates kopieren Sie die LOAD-Anweisung für Table2 und fügen Sie sie ein. Damit werden die Daten zweimal geladen. Nennen Sie die zweite Tabelle Table2a.
- Klicken Sie auf Daten laden.
- Öffnen Sie die Datenmodellansicht.
- Klicken Sie auf Vorschau anzeigen.
Gestützt auf das bisher von Ihnen geschriebene Ladeskript lädt Qlik Sense 628 Zeilen aus der Datendatei Dates.xlsx in Table2.
Sie können das vorhandene Skript auch löschen und Folgendes kopieren und einfügen:
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);
Ihr Skript sollte folgendermaßen aussehen:
Qlik Sense lädt nicht Table2 und dann Table2a. Stattdessen wird erkannt, dass Table2a die gleichen Feldnamen und die gleiche Anzahl Felder wie Table2 hat. Dann werden die Daten von Table2a zu Table2 hinzugefügt und Tabelle Table2a gelöscht. Das Ergebnis ist, dass Table2 jetzt 1256 Zeilen umfasst.
Nur Table2 wurde erstellt. Wählen Sie Table2 aus. Die Tabelle hat 256 Zeilen.
Manuelle Zusammenfassung
Falls zwei oder mehr Tabellen nicht die gleichen Felder besitzen, kann eine Zusammenfassung der beiden Tabellen in Qlik Sense erzwungen werden. Dieser Vorgang erfolgt mithilfe des Zusatzes Concatenate im Skript. Er fasst eine Tabelle mit einer anderen benannten Tabelle oder der zuletzt erstellten Tabelle zusammen.
Gehen Sie folgendermaßen vor:
- Bearbeiten Sie die LOAD-Anweisung für Table2a, indem Sie Concatenate hinzufügen und Week auskommentieren.
- Klicken Sie auf Daten laden.
- Öffnen Sie die Datenmodellansicht.
- Klicken Sie in der Datenmodellansicht auf Table2 und dann auf Vorschau.
- Klicken Sie auf Week in Table2. Die Vorschau zeigt jetzt, dass die Anzahl der Nicht-Null-Werte für das Feld 628 ist. Wenn Sie aber auf eines der anderen Felder klicken, sehen Sie, dass die Anzahl der Nicht-Null-Felder 1256 ist. Week wurde nur einmal geladen, und zwar aus Table2. Die Anzahl an Werten oder Datensätzen ist die Summe der Anzahl an Datensätzen in Table2 und Table2a.
Ihr Skript sieht nun wie folgt aus:
Table2a:
Concatenate LOAD
"Date",
Month (Date) as "Month",
Quarter,
// "Week",
"Year"
FROM [lib://DataFiles/Dates.xlsx]
(ooxml, embedded labels, table is Dates);
Durch das Auskommentieren von Week wird sichergestellt, dass die Tabellen nicht identisch sind.
Sie können nun sehen, dass Table2a nicht erstellt wurde.
Die Tabelle enthält die Felder Date, Month, Quarter, Week und Year. Das Feld Week wird weiterhin angezeigt, weil es aus Table2 geladen wurde.
Zusammenfassung von Tabellen verhindern
Stimmen bei zwei oder mehr Tabellen die Zahl der Felder und die Feldnamen genau überein, fasst Qlik Sense diese Tabellen automatisch zu einer Tabelle zusammen. Dies kann durch den Befehl NoConcatenate verhindert werden. Die mit der zugehörigen LOAD- oder SELECT-Anweisung geladene Tabelle wird dadurch nicht mit der bestehenden Tabelle zusammengefasst.
Gehen Sie folgendermaßen vor:
- Um den Inhalt der beiden Tabellen vollständig trennen zu können, fügen Sie NoConcatenate zur LOAD-Anweisung in Table2a hinzu und benennen Sie die Felder um, damit Qlik Sense keinen synthetischen Schlüssel basierend auf den übereinstimmenden Feldern erstellt. Kommentieren Sie Week in Table2 aus, damit die beiden Tabellen die gleichen Felder haben.
- Klicken Sie auf Daten laden.
- Öffnen Sie die Datenmodellansicht.
- Jetzt, da die Demonstration der Zusammenfassung abgeschlossen ist, wird Table2a nicht mehr benötigt. Löschen Sie alle Zeilen in der LOAD-Anweisung für Table2a und klicken Sie dann auf Daten laden.
Ihr Skript sieht nun wie folgt aus:
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);
Jetzt sehen Sie, dass die beiden Tabellen vollständig getrennt sind.