首頁 >資料庫 >mysql教程 >如何使用聚合和條件語句將 MySQL 列資料轉換為行?

如何使用聚合和條件語句將 MySQL 列資料轉換為行?

Patricia Arquette
Patricia Arquette原創
2024-12-21 18:12:18738瀏覽

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