postgresql中的重复记录

时间:2013-04-10 13:10:47

标签: postgresql

我在PostgreSQL中有一个表。我在那里导入了500万条记录。并且意外地导入了一些重复的记录,我不需要从表中删除那些重复的记录这里的表格主键是四列的组合 ..

2 个答案:

答案 0 :(得分:3)

create table t2 as
select distinct on (col1, col2, col3, col4) *
from t;

drop table t;
alter table t2 rename to t;

答案 1 :(得分:0)

DELETE FROM the_table a
WHERE a.ctid <> (SELECT min(b.ctid)
                 FROM  the_table b
                 WHERE a.col_1 = b.col_1
                   AND a.col_2 = b.col_2
                   AND a.col_3 = b.col_3
                   AND a.col_4 = b.col_4);

这将保留其中一个副本并删除其余部分。