Behalten Sie die ursprünglichen Spaltennamen für die Datenentfaltung bei
Datenentfaltung (Unpivoting) ist ein Prozess der Konvertierung von Tabellendaten in ein anderes Format, bei dem jede Spalte zu einer Zeile wird und ihre Spaltennamen zu Attributen der Zeile werden. Während dies normalerweise zum Umformen von Daten zur Analyse oder Visualisierung verwendet wird, kann es in manchen Fällen nützlich sein, die ursprünglichen Spaltennamen beizubehalten.
Frage:
Wie entfalten wir bei einer Datentabelle mit Spaltennamen wie Name
, Maths
, Science
und English
die Daten, um den folgenden Ergebnissatz zu erhalten?
Name | Subject | Marks |
---|---|---|
Tilak | Maths | 90 |
Tilak | Science | 40 |
Tilak | English | 60 |
Lösung:
Mit der UNPIVOT
-Klausel von SQL können wir die Daten entfalten und dabei die Spaltennamen beibehalten:
<code class="language-sql">select u.name, u.subject, u.marks from student s unpivot ( marks for subject in (Maths, Science, English) ) u;</code>
UNPIVOT
-Klausel wandelt die Spalten Maths
, Science
und English
in Zeilen um, und die Ergebnisse werden zur Spalte „Markierungen“ im entfalteten Ergebnissatz. Gleichzeitig verbleibt der Spaltenname in der Spalte „Betreff“.
Beispiel:
Betrachten Sie den folgenden Datensatz:
Name | Maths | Science | English |
---|---|---|---|
Tilak | 90 | 40 | 60 |
Raj | 30 | 20 | 10 |
Das Anwenden der bereitgestellten Abfrage auf diesen Datensatz führt zu den gewünschten Ergebnissen:
Name | Subject | Marks |
---|---|---|
Tilak | Maths | 90 |
Tilak | Science | 40 |
Tilak | English | 60 |
Raj | Maths | 30 |
Raj | Science | 20 |
Raj | English | 10 |
Diese Technik ist nützlich, wenn die Beibehaltung der ursprünglichen Spaltennamen für die weitere Analyse oder Datenverarbeitung wichtig ist.
Das obige ist der detaillierte Inhalt vonWie kann ich die Pivotierung von Daten aufheben und gleichzeitig die ursprünglichen Spaltennamen in SQL beibehalten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!