Rumah >pangkalan data >tutorial mysql >Bagaimanakah Saya Boleh Memadam Baris Pendua dengan Cekap dalam PostgreSQL Semasa Memelihara Satu Contoh?

Bagaimanakah Saya Boleh Memadam Baris Pendua dengan Cekap dalam PostgreSQL Semasa Memelihara Satu Contoh?

DDD
DDDasal
2025-01-06 10:04:41622semak imbas

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

Memelihara Kejadian Unik dalam Pemadaman Baris Pendua

Apabila bekerja dengan set data yang besar, kadangkala perlu menghapuskan baris pendua. Walau bagaimanapun, dalam senario tertentu, adalah wajar untuk mengekalkan satu salinan bagi setiap baris pendua. Dalam kes sedemikian, pendekatan disasarkan diperlukan untuk melakukan pemadaman terpilih.

Memahami Masalah

Dalam PostgreSQL, situasi yang diterangkan melibatkan pemadaman semua kecuali satu contoh set daripada baris pendua. Contohnya, jika terdapat lima rekod dengan nilai yang sama, matlamatnya adalah untuk memadam empat daripadanya, meninggalkan satu rekod.

Mencari Penyelesaian

Penjelasan yang komprehensif isu ini disediakan dalam artikel "Mengalih keluar pendua daripada pangkalan data PostgreSQL." Pengarang menangani cabaran khusus untuk menangani sejumlah besar data yang tidak dapat dikumpulkan dengan berkesan.

Penyelesaian Mudah

Artikel mengesyorkan penyelesaian yang mudah:

DELETE FROM foo
WHERE id NOT IN (SELECT min(id) --or max(id)
                 FROM foo
                 GROUP BY hash)

Dalam pertanyaan ini, "cincang" mewakili medan atau gabungan medan yang sedang digunakan untuk menentukan pendua. Dengan menggunakan sama ada nilai minimum atau maksimum medan "id" untuk setiap kumpulan pendua, satu contoh boleh dikekalkan.

Pendekatan sasaran ini membolehkan pemadaman baris pendua yang cekap sambil mengekalkan satu salinan untuk rujukan atau analisis.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Memadam Baris Pendua dengan Cekap dalam PostgreSQL Semasa Memelihara Satu Contoh?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn