保留單一副本:刪除不相同的重複行
維護資料完整性通常涉及從資料庫中刪除冗餘記錄。但是,在某些情況下,可能需要保留每組重複行的一個副本。本文解決了在 PostgreSQL 中從一組重複項中刪除除一行以外的所有行的挑戰。
解決方案:使用唯一標識符進行選擇性刪除
解決方案中提供的查詢利用分組的概念並選擇每組重複項中唯一標識符字段的最小(或最大)值。透過從刪除過程中排除具有該最小(或最大)標識符的行,可以保留每個唯一行的單一副本。
以下查詢示範了這種方法:
DELETE FROM foo WHERE id NOT IN (SELECT min(id) FROM foo GROUP BY hash);
在在該查詢中,散列欄位表示定義重複集的唯一特徵或特徵組合。透過從每個群組中選擇最小 id 值,查詢可以識別將保留的行,並從刪除中排除剩餘的重複行。
以上是如何在保留單一副本的同時刪除 PostgreSQL 中的重複行?的詳細內容。更多資訊請關注PHP中文網其他相關文章!