SQL-Transponierung von Zeilen als Spalten
Das Transponieren von Zeilen in Spalten in SQL ist eine Technik, mit der Sie eine Tabelle mit zeilenorientierten Daten konvertieren können in eine Tabelle mit spaltenorientierten Daten. Diese Technik wird allgemein als Pivotieren bezeichnet.
In Ihrem spezifischen Szenario haben Sie zwei Tabellen:
Ihr Ziel ist es, die Tabelle „Antworten“ so zu transponieren, dass die Antworten jedes Benutzers auf verschiedene Fragen als Spalten und nicht als Zeilen angezeigt werden.
Schritt-für- Schritt Lösung:
Um die gewünschte Transposition zu erreichen, können Sie eine Kombination aus Verknüpfungen und Bedingungen verwenden Aggregation:
SELECT r.user_id, MAX(CASE WHEN r.question_id = 1 THEN r.body ELSE NULL END) AS "Do you like apples?", MAX(CASE WHEN r.question_id = 2 THEN r.body ELSE NULL END) AS "Do you like oranges?", MAX(CASE WHEN r.question_id = 3 THEN r.body ELSE NULL END) AS "Do you like carrots?" FROM responses r JOIN questions q ON q.id = r.question_id GROUP BY r.user_id;
Erklärung:
Beispielergebnis:
user_id | Do you like apples? | Do you like oranges? | Do you like carrots? -------- | ------------------ | ------------------- | ------------------- 1 | Yes | Yes | No 2 | Yes | No | No
Das obige ist der detaillierte Inhalt vonWie kann ich Zeilen in SQL für Benutzerantworten in Spalten umwandeln?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!