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)

image-20240729-063722.png

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)

image-20240729-082621.png

image-20240729-082947.png

Verwendung von count(name)

image-20240729-083033.png

image-20240729-083145.png

Die Lösung wird mit der Aggregatfunktion distinct_count dargestellt

image-20240729-082405.png

image-20240729-082348.png

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.

Konfiguration der Spalte mit den Gehaltswerten: