Um eine Spalte in einer Tabelle basierend auf bestimmten Bedingungen in mehrere Spalten umzuwandeln, können SQL-Abfragen CASE WHEN-Ausdrücke verwenden. Bei der Implementierung dieser Methode kann es jedoch aufgrund fehlender Gruppierung zu falschen Ergebnissen kommen.
Um dieses Problem zu beheben, wird unten eine geänderte Abfrage bereitgestellt, die die Aggregatfunktion SUM() und die korrekte Gruppierung enthält:
<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>
Diese verbesserte Abfrage erzeugt die gewünschte Ausgabe:
name | amountVal1 | amountVal2 |
---|---|---|
John | 2000 | 1888 |
Peter | 1999 | 1854 |
Das obige ist der detaillierte Inhalt vonWie kann ich Spalten in SQL mithilfe von CASE WHEN und GROUP BY richtig positionieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!