首页 >数据库 >mysql教程 >如何使用聚合和条件语句将 MySQL 列数据转换为行?

如何使用聚合和条件语句将 MySQL 列数据转换为行?

Patricia Arquette
Patricia Arquette原创
2024-12-21 18:12:18665浏览

How to Pivot MySQL Column Data into Rows Using Aggregation and Conditional Statements?

MySQL 将表列数据转换为行

要在 MySQL 中有效地将表列数据转换为行,您可以使用聚合函数的组合和有条件的

查询:

SELECT
  a.ID,
  a.user_ID,
  a.job_id,
  MAX(CASE WHEN c.question = 'Is it this?' THEN b.answer END) 'Is it this?',
  MAX(CASE WHEN c.question = 'Or this?' THEN b.answer END) 'Or this?',
  MAX(CASE WHEN c.question = 'Or that? ' THEN b.answer END) 'Or that? '
FROM
  Results a
INNER JOIN
  Answers b ON a.id = b.fk_result_id
INNER JOIN
  Question c ON b.fk_question_id = c.ID
GROUP BY
  a.ID,
  a.user_ID,
  a.job_id;

解释:

  1. 连接结果、答案和问题
  2. 使用CASE语句判断每个问题条件是否满足,返回相应的答案。
  3. 使用 MAX() 函数聚合每个问题的最大答案。

其他提示:

  • 如果您有动态数量的问题,请考虑使用基于可用的动态 SQL 查询
  • 使用答案中提供的 SQLFiddle 演示链接进行实际演示。

以上是如何使用聚合和条件语句将 MySQL 列数据转换为行?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn