1. ホーム
  2. sql

PostgreSQLで重複した行を検索する

2023-10-08 21:32:54

質問

以下の列を持つ写真のテーブルがあります。

id, merchant_id, url 

このテーブルには、組み合わせのための重複した値 merchant_id, url .なので、1つの行が複数回表示される可能性があります。

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

削除したいレコードをあなたの仕様に合わせるために、order byを自由に弄ってください。

SQLフィドル => http://sqlfiddle.com/#!15/d6941/1/0


Postgres 9.2 用の SQL Fiddle はサポートされなくなりました。SQL Fiddle を postgres 9.3 に更新してください。