So verwenden Sie das PostgreSQL-Kreuztabellenmodul

So Verwenden Sie Das Postgresql Kreuztabellenmodul



Wenn Sie eine SELECT-Anweisung ausführen, um die Datensätze aus einer PostgreSQL-Tabelle abzurufen, werden die Daten in tabellarischer Form zurückgegeben. Die tabellarische Form ist möglicherweise nicht immer die beste Lösung zum Lesen der Daten, insbesondere wenn Sie die Werte vergleichen möchten. Ein besserer Ansatz besteht darin, die Datensätze als Kreuztabelle zurückzugeben. Zu diesem Zweck bietet PostgreSQL die Tabellenfunktion an, mit der Benutzer die Kreuztabellenfunktion verwenden können, um die Zieldaten als Pivot-Tabelle darzustellen. In diesem Beitrag erfahren Sie mehr über die Verwendung der PostgreSQL-Kreuztabellenfunktion. Weiter lesen!

Arbeiten mit dem PostgreSQL-Kreuztabellenmodul

Es ist praktisch, einen Raum zu haben, in dem Sie angeben können, wie Ihre Daten dargestellt werden sollen. Obwohl bei PostgreSQL die Daten standardmäßig in tabellarischer Form vorliegen, bietet Ihnen das Kreuztabellenmodul eine weitere Option. Für eine bessere Darstellung können Sie die Pivot-Tabellen mithilfe der „ausgewählten“ Spalten einer PostgreSQL-Tabelle erstellen.

Die erstaunliche Funktion ist eine Erweiterung für PostgreSQL Version 8.3. Die Erweiterung „tablefunc“ bietet die Kreuztabellenfunktion, die es ermöglicht, die Pivot-Tabellen als Ergebnismenge zu verwenden. Geben wir ein Beispiel.







Zuerst erstellen wir mit dem folgenden Befehl die Tabelle „Ergebnisse“ mit drei Spalten:





Die erstellte Tabelle ist leer. Fahren Sie also fort und verwenden Sie die INSERT-Abfrage, um die Werte hinzuzufügen. Für diesen Fall fügen wir einige Einträge ein, wie im Folgenden dargestellt:





Wenn wir die „select“-Anweisung ausführen, erhalten wir die folgenden Ergebnisse. Beachten Sie, wie diese Standardmethode zum Abrufen der Datensätze diese in tabellarischer Form darstellt. Die Spalten werden als Überschriften verwendet und ihre jeweiligen Werte erscheinen in den Zeilen:



Obwohl der vorherige Ansatz in den meisten Fällen funktioniert, gibt es eine andere Möglichkeit, dieselben Datensätze abzurufen. Für diesen Fall möchten wir eine Pivot-Tabelle erstellen. Daher verwenden wir die Erweiterung „tablefunc“, die mit PostgreSQL Version 8.3+ geliefert wird.


Erstellen wir also eine „tablefunc“-Erweiterung, um sie zu aktivieren, wenn wir sie in der Abfrage aufrufen. Führen Sie den folgenden Befehl aus:

ERWEITERUNG ERSTELLEN, WENN NICHT EXISTIERT tablefunc ;

Sie wissen, dass die Erweiterung erfolgreich aktiviert wurde, sobald Sie eine Ausgabe wie im vorherigen Bild erhalten.

Für unsere Kreuztabellenfunktion machen wir es so, dass die erste Spalte die Fakultät ist. Darunter sind die verschiedenen Fähigkeiten aufgeführt, die wir in unserer Tabelle haben. Neben der Fakultätsspalte haben wir weitere Spalten, die die verschiedenen Werte in der Kategoriespalte unserer Tabelle darstellen. Schließlich haben wir für jede Kategorie die Anzahl der Schüler, die die verschiedenen Kategorien erreicht haben.

Um eine solche Pivot-Tabelle zu erstellen, verwenden Sie die folgende Syntax:

WÄHLEN * AUS KREUZSTAB ( „SELECT Spalte1 , Spalte2 , Spalte3 FROM Tabellenname ORDER BY Kriteriena’ )

AS neuer_Name ( Spalte1 Datentyp , Spalte2 Datentyp , Column_n Datentyp ) ;

Anhand der von uns erstellten Beispieltabelle sieht unser Befehl wie folgt aus:

Bevor wir die Ergebnisse sehen, werfen wir einen Blick auf die Funktionsweise des Kreuztabellenmodulbefehls. Zunächst gibt die SELECT-Anweisung drei Spalten zurück. Die erste Spalte wird als Zeilenbezeichner behandelt. In unserem Fall ist es die Spalte „Fakultät“. Die zweite Spalte, die Spalte „Kategorie“, stellt die Kategorien für die Pivot-Tabelle dar. Die dritte Spalte schließlich enthält die Werte für die Kategorien. In unserem Fall ist es die Anzahl der Studierenden in jeder Kategorie.

Mit diesem Verständnis erhalten wir, sobald wir die „Enter“-Taste drücken, die Pivot-Tabelle wie folgt:

Anhand der zurückgegebenen Pivot-Tabelle können wir erkennen, dass sie wie ein 2D-Array funktioniert, wobei die erste Spalte in der SELECT-Anweisung das erste Array und die zweite Spalte das zweite Array in der Dimension ist. Die dritte Spalte enthält die Werte für die zweiten Array-Elemente.

Abschluss

Die PostgreSQL-Kreuztabelle eignet sich gut zur Darstellung der Tabellenwerte als Pivot-Tabelle. Sie müssen in Ihrer SELECT-Anweisung drei Spalten zurückgeben, um das Kreuztabellenmodul verwenden zu können. In diesem Beitrag finden Sie ein praktisches Beispiel für die Verwendung. Außerdem haben wir erklärt, wie das Kreuztabellenmodul beim Erstellen der Pivot-Tabelle funktioniert, die dieselbe Logik wie ein 2D-Array verwendet.