Pivot-Tabellen mit mySQL

Pivot-Tabellen bieten eine Möglichkeit, gerade umfangreiche Tabellen in komprimierter oder übersichtlicher Form darzustellen, indem einzelne Felder flexibel zusammengefasst oder summiert werden. So lässt sich auch ein großer Datenbestand von verschiedenen Gesichtspunkten her auswerten. Daher auch die Bezeichnung: “pivot” bedeutet im Französischen so viel wie Dreh- oder Angelpunkt. Die meisten Office-Suites bieten komfortable Pivot-Funktionen, eine Auswertung außerhalb von mySQL bietet sich dementsprechend also an. Nichtsdestotrotz lassen sich t-Tabellen mit mySQL erzeugen, wenn auch nur eingeschränkt und mit großem Aufwand.

Pivot-Tabellen mit mySQL – ein möglicher Weg

Pivot-Tabellen mit mySQL sind sehr viel weniger komfortabel zu erstellen als in handelsüblichen Tabellenkalkulationen der meisten Office-Suites – mit einer bestimmten Struktur von Ausgabebefehlen kann man jedoch einfache Pivot-Tabellen mit mySQL als komprimierte Ausgabe erzwingen. Im Wesentlichen verwendet man dafür die Befehle SUM () und FROM – wie das grundlegend geht, soll hier an einem – einfachen – Beispiel, einer Tabelle von wöchentlichen Verkaufsergebnissen, erläutert werden.

Wir nehmen für unser Beispiel eine Tabelle mit den Spalten “Verkäufernummer”, “Name”, “Wochentag” und “Ergebnis” an und befüllen sie mit beliebigen Daten; für die Wochentage vergeben wir einfacherweise die Nummern von 1 – 5. Wenn wir nun die Ergebnisse der einzelnen Verkäufer an den einzelnen Wochentagen einander gegenüberstellen wollen, müssen wir auf Pivot-Tabellen mit mySQL zurückgreifen:

mysql> select Name,
sum (Ergebnis*(1-abs(sign(Ergebnis-1)))) as Wochentag1
sum (Ergebnis*(1-abs(sign(Ergebnis-2)))) as Wochentag2
sum (Ergebnis*(1-abs(sign(Ergebnis-3)))) as Wochentag3
sum (Ergebnis*(1-abs(sign(Ergebnis-4)))) as Wochentag4
sum (Ergebnis*(1-abs(sign(Ergebnis-5)))) as Wochentag5
from Wochentage group by Name;

Zielgerichtet Daten in Pivot-Tabellen mit mySQL fischen.

Zielgerichtet Daten in Pivot-Tabellen mit mySQL fischen.

Auf diese Art und Weise haben wir eine Liste mit Eingaben in beliebiger Reihenfolge über eine Pivot-Tabelle mit mySQL übersichtlich sortiert und erhalten als Ausgabe eine Pivot-Tabelle, die die Ergebnisse der einzelnen Verkäufer an jedem Wochentag einander gegenüberstellt. Die Pivot-Tabellen mit mySQL lassen sich nach Bedarf dann auch noch über IF-Kriterien beliebig komplexer gestalten, etwa in der Form:
…SUM (IF (Wochentag=1,Ergebnis,NULL)) AS Wochentag1 …

Pivot-Ausgaben aus mySQL-Tabellen erzeugen

Wie bereits eingangs erwähnt, bieten Tabellenkalkulationen wesentlich umfangreichere, schnellere und komfortablere Pivot-Ausgaben. Innerhalb von mySQL ist ein hoher Programmieraufwand nötig; bei einer Ausgabe als Kreuztabellen stößt man dabei meist schon an die Grenzen des Möglichen. Für einfache Summierungen und Zusammenfassungen innerhalb umfangreicher Datenbestände kann man aber Pivot-Tabellen mit mySQL auch innerhalb von mySQL erzeugen – immerhin erspart man sich damit das Exportieren des gesamten Datenbestandes in ein externes Programm. Pivot-Tabellen in mySQL machen also gelegentlich Sinn.

Bildquelle: Dron@fotolia.com

Hinterlasse eine Antwort

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *