Heim > Datenbank > MySQL-Tutorial > Wie kann SQL Unpivoting breite Tabellendaten in ein langes Format umwandeln?

Wie kann SQL Unpivoting breite Tabellendaten in ein langes Format umwandeln?

Patricia Arquette
Freigeben: 2025-01-21 04:46:08
Original
280 Leute haben es durchsucht

How Can SQL Unpivoting Transform Wide Tabular Data into a Long Format?

Unpivoting: Restrukturierung relationaler Daten

Stellen Sie sich eine Tabelle vor, StudentMarks, in der die Namen der Schüler (Name) und ihre Ergebnisse in verschiedenen Fächern (Maths, Science, English) gespeichert sind. Die Daten sind zunächst folgendermaßen organisiert:

<code>Name, Maths, Science, English
Tilak, 90, 40, 60
Raj, 30, 20, 10</code>
Nach dem Login kopieren

Aber was ist, wenn wir eine andere Struktur benötigen – eine, bei der die Punktzahl jedes Probanden in einer neuen Zeile erscheint? Das gewünschte Ergebnis sieht so aus:

<code>Name, Subject, Marks
Tilak, Maths, 90
Tilak, Science, 40
Tilak, English, 60
Raj, Maths, 30
Raj, Science, 20
Raj, English, 10</code>
Nach dem Login kopieren

Hier kommt das SQL-Unpivoting ins Spiel. Es handelt sich um eine leistungsstarke Technik zum Umwandeln breiter Tabellen (viele Spalten) in lange Tabellen (viele Zeilen).

So erreichen Sie dies mithilfe einer SQL-Abfrage:

SELECT u.name, u.subject, u.marks
FROM student s
UNPIVOT
(
  marks
  FOR subject IN (Maths, Science, English)
) u;
Nach dem Login kopieren

Diese Abfrage verwendet den Operator UNPIVOT. Es nimmt die Spalten Maths, Science und English und wandelt sie in eine einzelne Spalte Subject mit den entsprechenden Bewertungen in der Spalte Marks um. Das Ergebnis ist das gewünschte Langformat.

Für eine Live-Demonstration schauen Sie sich diese SQL Fiddle an:

SQL-Fiddle-Beispiel

Das obige ist der detaillierte Inhalt vonWie kann SQL Unpivoting breite Tabellendaten in ein langes Format umwandeln?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage