2008/10/7 Yi Zhao <yi.zhao@xxxxxxxxxxxxxxx>: > I have a table contains some duplicate records, and this table create > without oids, for example: > id | temp_id > ----+--------- > 10 | 1 > 10 | 1 > 10 | 1 > 20 | 4 > 20 | 4 > 30 | 5 > 30 | 5 > I want get the duplicated records removed and only one is reserved, so > the results is: > 10 1 > 20 4 > 30 5 > > I know create a temp table will resolve this problem, but I don't want > this way:) > > can someone tell me a simple methold? > > any help is appreciated, > > thanks, > > I would not say this is easier.... 1. alter table t add key serial; 2. delete from table where key not in (select max(key) from table group on id,temp_id); The truth is this is not any less work then using a temporary table (whole table still needs rewriting). Which method you select really depends on why these duplicate records exist in the first place. Regards Peter