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中文网其他相关文章!