ホームページ > データベース > mysql チュートリアル > 単一のインスタンスを保持しながら、PostgreSQL で重複する行を効率的に削除するにはどうすればよいですか?

単一のインスタンスを保持しながら、PostgreSQL で重複する行を効率的に削除するにはどうすればよいですか?

DDD
リリース: 2025-01-06 10:04:41
オリジナル
588 人が閲覧しました

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

重複行の削除で一意のインスタンスを保持する

大規模なデータセットを操作する場合、重複行を削除することが必要になる場合があります。ただし、特定のシナリオでは、各重複行の 1 つのコピーを保持することが望ましい場合があります。このような場合、選択的削除を実行するには、的を絞ったアプローチが必要です。

問題の理解

PostgreSQL では、説明されている状況には、セットの 1 つを除くすべてのインスタンスを削除することが含まれます。重複した行の。たとえば、同じ値を持つレコードが 5 つある場合、目標は、そのうちの 4 つを削除し、1 つをそのまま残すことです。

解決策の検索

包括的な説明この問題については、記事「PostgreSQL データベースからの重複の削除」で説明されています。著者らは、効果的にグループ化できない膨大な量のデータを処理するという具体的な課題に取り組んでいます。

簡単な解決策

この記事では、次のような簡単な解決策を推奨しています。

DELETE FROM foo
WHERE id NOT IN (SELECT min(id) --or max(id)
                 FROM foo
                 GROUP BY hash)
ログイン後にコピー

このクエリでは、「ハッシュ」は重複を判断するために使用されるフィールドまたはフィールドの組み合わせを表します。重複グループごとに「id」フィールドの最小値または最大値のいずれかを使用することで、1 つのインスタンスを保持できます。

この対象を絞ったアプローチにより、参照用または参照用の 1 つのコピーを維持しながら重複行を効率的に削除できます。分析。

以上が単一のインスタンスを保持しながら、PostgreSQL で重複する行を効率的に削除するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート