首页 > 数据库 > mysql教程 > 如何在保留单个副本的同时删除 PostgreSQL 中的重复行?

如何在保留单个副本的同时删除 PostgreSQL 中的重复行?

Linda Hamilton
发布: 2025-01-06 10:05:40
原创
131 人浏览过

How Can I Delete Duplicate Rows in PostgreSQL While Preserving a Single Copy?

保留单个副本:删除不相同的重复行

维护数据完整性通常涉及从数据库中删除冗余记录。但是,在某些情况下,可能需要保留每组重复行的一个副本。本文解决了在 PostgreSQL 中从一组重复项中删除除一行以外的所有行的挑战。

解决方案:使用唯一标识符进行选择性删除

解决方案中提供的查询利用分组的概念并选择每组重复项中唯一标识符字段的最小(或最大)值。通过从删除过程中排除具有该最小(或最大)标识符的行,可以保留每个唯一行的单个副本。

以下查询演示了这种方法:

DELETE FROM foo
WHERE id NOT IN (SELECT min(id) FROM foo GROUP BY hash);
登录后复制

在在该查询中,散列字段表示定义重复集的唯一特征或特征组合。通过从每个组中选择最小 id 值,查询可以识别将保留的行,并从删除中排除剩余的重复行。

以上是如何在保留单个副本的同时删除 PostgreSQL 中的重复行?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板