使用 PostgreSQL 查找并删除重复行

2024-04-27

我们有一个包含以下列的照片表:

id, merchant_id, url 

该表包含组合的重复值merchant_id, url。因此,一行可能会出现多次。

234 some_merchant  http://www.some-image-url.com/abscde1213
235 some_merchant  http://www.some-image-url.com/abscde1213
236 some_merchant  http://www.some-image-url.com/abscde1213

删除这些重复项的最佳方法是什么? (我使用 PostgreSQL 9.2 和 Rails 3。)


这是我的看法。

select * from (
  SELECT id,
  ROW_NUMBER() OVER(PARTITION BY merchant_Id, url ORDER BY id asc) AS Row
  FROM Photos
) dups
where 
dups.Row > 1

请随意使用顺序来根据您的规范定制要删除的记录。

SQL 小提琴 =>http://sqlfiddle.com/#!15/d6941/1/0 http://sqlfiddle.com/#!15/d6941/1/0


不再支持 Postgres 9.2 的 SQL Fiddle;将 SQL Fiddle 更新到 postgres 9.3

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 PostgreSQL 查找并删除重复行 的相关文章

随机推荐