如何解决在 MYSQL 中实现动态数据透视
我写了一个 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
结果是
添加了攻击性功能,结果列仍然重复
解决方法
我得到了答案。
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
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
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。