2012-02-09 9 views
0

私は、列id_locationに基づいてエントリのペアを持つテーブルを持っています。私は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_image", "score", "stddev", "id_image2", "score2", "stddev2", "id_location" 
3484,  0.90422, 0.06476, 18,   0.71598, 0.06101, 13 
+0

私は、Pythonで演奏するCSV、または一緒に演奏するMySQLデータベースを持っています。これは一度だけ行う必要があります。 –

答えて

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

あなたは、黒い魔法を知っています。 –

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

私は何千ものペアを持っているので、何もハードコードできませんでした –

関連する問題