我想在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