Heim >Datenbank >MySQL-Tutorial >Wie kann ich eine PostgreSQL-Tabelle mit „unnest()' transponieren?

Wie kann ich eine PostgreSQL-Tabelle mit „unnest()' transponieren?

Linda Hamilton
Linda HamiltonOriginal
2025-01-04 21:34:43485Durchsuche

How Can I Transpose a PostgreSQL Table Using `unnest()`?

Transponieren Sie eine Tabelle durch Konvertieren von Spalten in Zeilen

Beim Arbeiten mit Tabellen in PostgreSQL kann es Situationen geben, in denen Sie eine Tabelle transponieren müssen , im Wesentlichen Spalten in Zeilen umwandeln. Dies ist eine nützliche Transformation für verschiedene Datenanalysezwecke.

Problemstellung:

Sie haben eine PostgreSQL-Funktion oder -Tabelle, die Daten im folgenden Format ausgibt:

Sl.no username Designation salary etc..
1 A XYZ 10000 ...
2 B RTS 50000 ...
3 C QWE 20000 ...
4 D HGD 34343 ...

Sie möchten diese Tabelle so transponieren, dass die Ausgabe im Folgenden erscheint Format:

Sl.no 1 2 3 4 ...
Username A B C D ...
Designation XYZ RTS QWE HGD ...
Salary 10000 50000 20000 34343 ...

Lösung:

Um diese Transposition zu erreichen, können Sie die Funktion unnest() von PostgreSQL verwenden. Mit dieser Funktion können Sie Elemente aus einem Array extrahieren und sie als einzelne Zeilen behandeln.

Hier ist die Abfrage, die Ihre Tabelle transponiert:

SELECT
   unnest(array['Sl.no', 'username', 'Designation','salary']) AS "Columns",
   unnest(array[Sl.no, username, value3Count,salary]) AS "Values"
FROM view_name
ORDER BY "Columns"

Erklärung:

  • Das Array[...] erstellt Arrays, die jeweils die Spaltennamen und die entsprechenden Werte enthalten Zeile.
  • Die Funktion unnest() extrahiert jedes Element aus den Arrays und behandelt sie als separate Zeilen.
  • Die ORDER BY-Klausel stellt sicher, dass die transponierte Tabelle die ursprüngliche Spaltenreihenfolge hat.

Diese Abfrage gibt die transponierte Tabelle in der gewünschten Form aus Format.

Referenz:

Die Funktion unnest() ist in der PostgreSQL-Dokumentation unter „convertingColumnsToRows“ dokumentiert.

Das obige ist der detaillierte Inhalt vonWie kann ich eine PostgreSQL-Tabelle mit „unnest()' transponieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn