psql如何删除一个表中重复记录,删除后保留一条
一个表中存在某些字段重复的记录,想删除后保留一条,但是这个表没有可以唯一标示的主键,改如何删除?
select * from (select *,row_number() over(partition by report_id) as row_seq from
sdup.t_relat_detail_file) t where t.row_seq>1;
这样可以查询出来重复的那条记录
但是执行delete from (select *,row_number() over(partition by report_id) as row_seq from
sdup.t_relat_detail_file) t where t.row_seq>1;
时候提示语法不对,在db2中这样可以实现的,不知道为啥psql不行,目前是GP数据库,求高手指教,谢谢
------解决方案--------------------
没有主键太难搞了,
我想应该用分组查询得到唯一记录,并将结果集存放的新表,,