Postgres で重複行のコピーを 1 つ保持する
重複データを扱う場合、多くの場合、少なくとも 1 つを保持しながら冗長性を削除する必要があります。各重複セットのインスタンス。 Postgres では、これは次のアプローチで実現できます:
単一のコピーを保持しながら重複行を削除するには、次のクエリを使用できます:
DELETE FROM foo WHERE id NOT IN ( SELECT MIN(id) -- or MAX(id) for the latest copy FROM foo GROUP BY hash );
このクエリ内:
MIN(id) または MAX( id) サブクエリ内で、各重複セットの最も古いコピーまたは最新のコピーのみが保持されるようにします。
このアプローチでは、少なくとも次のことが保証されます。不要な重複を削除しながら、各重複行の 1 つのコピーがテーブルに保存されます。
以上がPostgreSQL で重複行のコピーを 1 つだけ保持するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。