在重複行刪除中保留唯一實例
處理大型資料集時,有時需要消除重複行。然而,在某些情況下,可能需要保留每個重複行的單一副本。在這種情況下,需要採取有針對性的方法來執行選擇性刪除。
理解問題
在 PostgreSQL 中,所描述的情況涉及刪除一組實例中除一個實例之外的所有實例重複行。例如,如果有 5 條具有相同值的記錄,目標是刪除其中 4 條,保留一條完好無損。
尋找解決方案
全面解釋「從 PostgreSQL 資料庫中刪除重複項」一文中介紹了此問題。作者解決了處理無法有效分組的大量數據的具體挑戰。
簡單的解決方案
本文推薦了一個簡單的解決方案:
DELETE FROM foo WHERE id NOT IN (SELECT min(id) --or max(id) FROM foo GROUP BY hash)
在此查詢中,「雜湊」表示用於確定重複項的欄位或欄位組合。透過對每個重複組使用「id」欄位的最小值或最大值,可以保留一個實例。
這種有針對性的方法可以有效刪除重複行,同時保留單一副本以供參考或分析。
以上是如何在保留單一實例的同時有效率地刪除 PostgreSQL 中的重複行?的詳細內容。更多資訊請關注PHP中文網其他相關文章!