1

PostgreSQL にテーブルがあり、そこに 500 万のレコードをインポートしました。また、誤っていくつかの重複レコードをインポートしましたが、それらの重複レコードをテーブルから削除する必要はありません。ここで、テーブルの主キーは 4 つの列の組み合わせです..

4

2 に答える 2

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

drop table t;
alter table t2 rename to t;
于 2013-04-10T13:15:39.647 に答える
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);

これにより、重複の 1 つが保持され、残りは削除されます。

于 2013-04-10T13:17:33.450 に答える