pgsql 删除重复数据
时间: 2023-06-22 09:25:59 浏览: 216
你可以使用 PostgreSQL 中的 DISTINCT ON 语句来删除重复数据。首先,你需要选择要保留的唯一值的列和排序条件,然后使用 DELETE 语句来删除重复行。
例如,如果你有一个名为 my_table 的表,它包含多个重复行,你可以使用以下语句来删除重复行:
```
DELETE FROM my_table
WHERE id NOT IN (SELECT DISTINCT ON (col1, col2) id
FROM my_table
ORDER BY col1, col2, id);
```
在这个例子中,我们选择了列 col1 和 col2 作为唯一值的列,并按照这两列以及 id 列排序。然后,我们使用 NOT IN 子句来删除不在子查询结果中的行,子查询使用 DISTINCT ON 子句选择唯一值。
请注意,这种方法可能会影响性能,特别是当表很大时。你应该谨慎使用,并在使用之前备份数据。
阅读全文
相关推荐





