【发布时间】:2021-09-28 03:12:29
【问题描述】:
我写了一个mysql查询
SELECT id,GROUP_CONCAT(answer.text) as answer,question.question_name as question
FROM user_answers
inner join answer on user_answers.answer_id=answer.answer_id
inner join question on answer.question_id=question.question_id
GROUP BY id,question.question_id
我得到的结果是
但我希望得到答案
如何转置我的数据。 ?
我试过这个查询。但没有得到实际结果。它的重复
SELECT id,
GROUP_CONCAT(
CASE
WHEN question.question_name = 'Household'
THEN answer.text
ELSE NULL
END
) AS Household,
GROUP_CONCAT(
CASE
WHEN question.question_name = 'Dependents'
THEN answer.text
ELSE NULL
END
) AS Dependents,
GROUP_CONCAT(
CASE
WHEN question.question_name = 'Generation'
THEN answer.text
ELSE NULL
END
) AS Generation,
GROUP_CONCAT(
CASE
WHEN question.question_name = 'Gender'
THEN answer.text
ELSE NULL
END
) AS 'Gender',
GROUP_CONCAT(
CASE
WHEN question.question_name = 'Race'
THEN answer.text
ELSE NULL
END
) AS 'Race',
GROUP_CONCAT(
CASE
WHEN question.question_name = 'FinancialGoals'
THEN answer.text
ELSE NULL
END
) AS 'FinancialGoals'
FROM user_answers
inner join answer on user_answers.answer_id=answer.answer_id
inner join question on answer.question_id=question.question_id
GROUP BY id,question.question_id,question.question_name
结果是
添加了激进的功能,结果列仍然重复
【问题讨论】:
-
嗨@Luuk,我试过了,但我得到了重复的值。我用重复更新了问题
-
您必须重新阅读我之前发布的链接,并多加注意。 (您的 SQL 语句中缺少一个聚合函数(实际上不止一个)。)
-
还添加了聚合......但输出相同。它的重复
-
@Luuk 谢谢。 .. :) 我得到了我的问题.. group by 子句中的问题。
标签: mysql sql pivot mysql-workbench dynamic-pivot