2012-02-09 80 views
0

我有一個基於列id_location的條目對的表。將重複值移動到另一列

"id_image", "score", "stddev", "id_image2", "score2", "stddev2", "id_location" 
3484,  0.90422, 0.06476, NULL,  NULL,  NULL,  13 
18,   0.71598, 0.06101, NULL,  NULL,  NULL,  13 

如果我想合併重複的id_location並將其移動到不同的列,因此每一行都是獨一無二的,我會怎麼做呢?

我看着轉置和支點,但那些看起來有些不同。

這將是結果表:

"id_image", "score", "stddev", "id_image2", "score2", "stddev2", "id_location" 
3484,  0.90422, 0.06476, 18,   0.71598, 0.06101, 13 
+0

我有Python或一個MySQL數據庫中的CSV來玩。這隻需要做一次。 – 2012-02-09 22:04:11

回答

2

這將做到這一點,具有較高id_image出現在第一槽:

INSERT INTO new_table 
SELECT t1.id_image, t1.score, t1.stddev, t2.id_image, 
    t2.score, t2.stddev, t1.id_location 
FROM old_table t1 
JOIN old_table t2 
ON t2.id_location = t1.id_location 
    AND t2.id_image < t1.id_image 
+0

你先生,知道黑魔法。 – 2012-02-09 22:29:08

0

也許使用子查詢:

UPDATE your_table 
SET 
    score2 = (SELECT score FROM your_table WHERE id_image = 3484), 
    stddev2 = (SELECT stddev FROM your_table WHERE id_image = 3484), 
WHERE id_image = 18; 
+0

我有成千上萬對,所以我不能硬編碼任何東西 – 2012-02-09 21:33:11

相關問題