SQL 將行轉置為列
在SQL 中將行轉置為列是一種允許您轉換具有面向行資料的表的技術到具有面向列的資料的表中。這種技術通常稱為資料透視。
在您的特定場景中,您有兩個表格:
您的目標是調換「回應」表,以便每個使用者對不同問題的回答顯示為列,而不是行。
逐步-步驟解決方案:
要實現所需的轉置,可以使用連接和條件的組合聚合:
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;
解釋:
範例結果:
user_id | Do you like apples? | Do you like oranges? | Do you like carrots? -------- | ------------------ | ------------------- | ------------------- 1 | Yes | Yes | No 2 | Yes | No | No
以上是如何在 SQL 中將行轉換為列以取得使用者回應?的詳細內容。更多資訊請關注PHP中文網其他相關文章!