Aggregatfunktionen und Pivotisierung
Mit Hilfe von Aggregatfunktionen und Pivoting lassen sich Daten in einer Datenbanktabelle gruppieren und aggregieren.
Die grundlegende Funktionalität lässt sich am besten anhand eines einfachen Beispiels erklären.
Wir haben eine Tabelle (der Einfachheit halber nicht normalisiert), die Mitarbeiter eines Unternehmens enthält. Jeder Mitarbeiter hat einen Namen, gehört zu einer Abteilung, hat eine Erfahrungsstufe und ein Gehalt.
Schauen wir uns nun an, wie wir aus diesem Datensatz einige nützliche Informationen herausholen können.
Gehälter pro Mitarbeiter
Dies ist die einfachste Form der Information. Es wird einfach der Name des Mitarbeiters zusammen mit seinem Gehalt angezeigt. Dazu ist keine Aggregatfunktion oder Pivotierung erforderlich.
Tabelle
Die Tabelle besteht aus zwei Spalten, eine für den Namen und eine für das Gehalt, beide ohne Aggregatfunktion.
Konfiguration der Spalte Name
Konfiguration der Gehaltsspalte:
Chart
Chart-Konfiguration
Konfiguration der Spalte mit den Gehaltswerten
Zusammengefasste Gehälter gruppiert nach Abteilung
Tabelle
Konfiguration der Abteilungsspalte:
Die Mitarbeiter sind nach Abteilungen gruppiert.
Obwohl gruppieren in der Dropdown-Liste Aggregatfunktion enthalten ist, handelt es sich nicht wirklich um eine Aggregatfunktion. Aggregatfunktionen aggregieren Werte (Summe, Anzahl, Mittelwert, Minimum, Maximum), während gruppieren nur Zeilen zusammenfasst.
Konfiguration der Gehaltsspalte:
Da wir die Mitarbeiter bereits nach Abteilung gruppiert haben, müssen alle anderen Spalten eine Aggregatfunktion verwenden. In diesem Fall wollen wir die Gehälter der Mitarbeiter innerhalb einer Abteilung zusammenfassen.
Chart
Chart-Konfiguration
Die Zeilen werden automatisch nach der Spalte gruppiert, die als X-Achsenbeschriftung ausgewählt wurde .
Konfiguration der Gehaltswert-Spalte
Durchschnittliche Gehälter gruppiert nach Abteilung
Gleiche Konfiguration wie im obigen Beispiel, mit der Ausnahme, dass die Aggregatfunktion der Gehaltsspalte auf avg anstelle von sum gesetzt ist.
Tabelle
Chart
Anzahl der Mitarbeiter gruppiert nach Abteilung
Gleiche Konfiguration wie im obigen Beispiel, außer dass die Aggregatfunktion der Gehaltsspalte auf count statt auf sum gesetzt ist.
Tabelle
Chart
Sonderfall (Distinct_count):
Wenn der ursprüngliche Datensatz mehrere Einträge für dieselbe Person enthielt, könnte dies bedeuten, dass die Person eine Gehaltserhöhung erhalten hat.
Die Gehaltserhöhung wird als neuer Eintrag in der Tabelle dargestellt (dies hilft, den Überblick über die alten Gehaltsdaten zu behalten)
Im folgenden Screenshot hat Hans Muster eine Gehaltserhöhung erhalten, sein neues Gehalt beträgt also (100'000.00)
Würde man mit den bisherigen Einstellungen die Anzahl der Mitarbeiter gruppiert nach Abteilungen berechnen, würde man Hans doppelt zählen.
Eine Änderung der Aggregatfunktion von count(salary) zu count(name) würde immer noch zu demselben falschen Ergebnis führen, wie unten gezeigt:
Mit count(Gehalt)
Verwendung von count(name)
Die Lösung wird mit der Aggregatfunktion distinct_count dargestellt
Gehalt geschwenkt nach Stufe, gruppiert nach Abteilung
In den vorherigen Beispielen hatten wir immer nur eine Datenreihe (Gehalt oder Anzahl der Mitarbeiter). Es könnte auch interessant sein, die Datenreihen auf der Grundlage der verfügbaren Daten zu definieren.
In diesem Beispiel möchten wir die zusammengefassten Gehälter nach Abteilungen gruppiert anzeigen. Außerdem möchten wir die Daten getrennt nach der Ebene der Mitarbeiter anzeigen.
Um dies zu erreichen, müssen wir die Mitarbeiter nach Abteilungen gruppieren und die Tabelle nach Ebene drehen. Das Ergebnis ist die folgende Tabelle:
Abteilung | hoch | niedrig | mittel |
---|---|---|---|
Entwicklung | 120'000.00 | 100'000.00 | 110'000.00 |
Geschäftsführung | 180'000.00 | 0 | 150'000.00 |
Einkauf | 0 | 80'000.00 | 90'000.00 |
Das Tabellen-Widget unterstützt noch kein Pivoting.
Diese Tabelle kann wie folgt in einem Chart visualisiert werden:
Chart-Konfiguration:
Die Liste der Pivot-Farben wird automatisch anhand der in der Tabelle vorhandenen Daten erstellt.
Wenn eine Pivot-Spalte eingestellt ist, kann nur eine Wertespalte hinzugefügt werden.