Verwenden Sie die SQL-Anweisung CASE WHEN zum Pivotieren von Spalten
In relationalen Datenbanken ist es zum Analysieren oder Anzeigen von Daten häufig erforderlich, Daten in verschiedene Formate umzuwandeln. Eine häufige Transformation ist das Pivotieren, bei dem mehrere Datenzeilen in einer einzigen Zeile zusammengefasst werden.
Frage:
Stellen Sie sich eine Tabelle namens „Bank“ mit den Spalten „Name“, „Wert“ und „Betrag“ vor:
name | val | amount |
---|---|---|
John | 1 | 2000 |
Peter | 1 | 1999 |
Peter | 2 | 1854 |
John | 2 | 1888 |
Das Ziel besteht darin, die Spalte „val“ zu drehen und zwei neue Spalten mit den Namen „amountVal1“ und „amountVal2“ zu erstellen, die die „amount“-Werte mit den „val“-Werten „1“ und „2“ darstellen. jeweils. Die gewünschte Ausgabe sieht so aus:
name | amountVal1 | amountVal2 |
---|---|---|
John | 2000 | 1888 |
Peter | 1999 | 1854 |
Lösung:
Um diese Konvertierung durchzuführen, können CASE WHEN-Ausdrücke zusammen mit Aggregatfunktionen verwendet werden. Die folgende SQL-Abfrage erzielt die erwarteten Ergebnisse:
<code class="language-sql">SELECT name, SUM(CASE WHEN val = 1 THEN amount ELSE 0 END) AS amountVal1, SUM(CASE WHEN val = 2 THEN amount ELSE 0 END) AS amountVal2 FROM bank GROUP BY name</code>
In dieser Abfrage:
Mit dieser Abfrage können Sie die Daten in der Tabelle „Bank“ erfolgreich Pivotieren und dabei die erforderlichen Spalten „amountVal1“ und „amountVal2“ erstellen, die „val“-Werte von „1“ bzw. „2“ enthalten. Betrag"-Wert.
Das obige ist der detaillierte Inhalt vonWie kann ich eine Spalte in SQL mithilfe von CASE WHEN und Aggregation Pivotieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!