我想在MySQL中将某些行转换为列。我知道它以前已被问及回答,如here。如何将行转换为不含有唯一值列的列?
我的问题是,在我可以应用'if'构造的行中没有任何内容。 (至少我认为是这样。) E.g.对于下面的输入,
2 5 1000
2 6 2000
我可以运行此查询:
INSERT INTO SUMMARY
(user_id,valueA,valueB)
SELECT d.user_id,
MAX(CASE WHEN d.code = 5 THEN d.value ELSE NULL END),
MAX(CASE WHEN d.code = 6 THEN d.value ELSE NULL END),
FROM DETAILS d
GROUP BY d.user_id
,并得到如下的输出:
2 1000 2000
但我的问题是,我的输入是这样的:
2 6 1000
2 6 2000
(s中的值的Econd列不是唯一的。) ,我仍然需要相同的输出,即:
2 1000 2000
它可以在MySQL做呢?如果是的话,任何人都可以帮助我吗?
你能否提供你的表的DDL脚本?你知道给定的“user_id”会有多少“值”,即最终结果集中有多少列?或者它是一个随机数字?在你的例子中,你怎么知道1000必须在第一列,第二列是2000? –
好吧,我不确定,但现在我们可以假设每个user_id最多有10行。 – Bhushan