2014-08-29 3 views
0

У меня есть таблица с дубликатами (COL2) в той же категории (определенная в COL1), когда я пытаюсь удалить кортежи внутри COL2, я не могу найти способ сделать это только в пределах той же категории, вместо этого он удаляет кортежи всюду в таблице.удалить кортежи в столбце с условием

Here is the current table T1 BEFORE removing duplicates: 

     COL1  COL2 
     A   1 
     A   2 
     A   2 
     A   2 
     B   1 
     B   2 
     B   2 
     B   3 


Here is the current table T1 AFTER removing duplicates: 

     COL1  COL2 
     A   1 
     A   2 
     B   3 

Here is what I should have in T1: 
     COL1  COL2 
     A   1 
     A   2 
     B   1 
     B   2 
     B   3 

Here is the code I used to delete duplicates: 

    CREATE TABLE TEMP LIKE T1; 
    INSERT INTO TEMP SELECT * FROM T1 WHERE 1 GROUP BY COL2; 
    DROP TABLE T1; 
    ALTER TABLE TEMP RENAME T1; 

Любая идея, как сказать mysql удалить кортежи только в пределах категории COL1?

+0

Где то, что вы должны иметь в T1? – Barmar

+0

Возможный дубликат [Удалить все повторяющиеся строки, кроме одного в MySQL?] (Http://stackoverflow.com/questions/4685173/delete-all-duplicate-rows-except-for-one-in-mysql) другой [ Удалите повторяющиеся строки в MySQL] (http://stackoverflow.com/questions/3311903/remove-duplicate-rows-in-mysql) –

ответ

1

Используйте обе колонки в вашей статье GROUP BY:

INSERT INTO TEMP 
SELECT * 
FROM T1 
GROUP BY COL1, COL2 
+0

Ну ладно, попробуем это прямо сейчас. Благодаря! – madkitty

Смежные вопросы