Mencari Duplikasi Data dengan SQL

Anda ingin mencari data yang berduplikasi dalam tabel dalam database yang Anda miliki? Dengan menggunakan statement SQL, Anda dapat mengetahui data yang berduplikasi dengan mudah dan cepat.
Bagaimana caranya? Simak artikel ini dengan baik.
Untuk pembahasan, akan diambil contoh tabel mahasiswa dengan struktur field berikut ini
NIM -> Varchar(10)
NamaMhs -> Varchar(20)
Pada struktur tabel di atas, memang seharusnya tidak boleh ada data pada field NIM yang berduplikasi. Repot… apabila ada dua atau lebih mahasiswa yang memiliki NIM yang sama.
Bagi programmer yang baik, tentunya akan membuat primary key pada field NIM untuk mencegah duplikasi data.  Namun bagaimana seandainya si programmer lupa untuk memberikan primary key pada NIM, padahal data mahasiswa sudah telanjur tersimpan dalam tabel? Jangan khawatir wahai programmer… ada cara untuk mencari data yang berduplikasi. Gunakan saja statement SQL.
Begini perintahnya:
1.SELECT nim, count(*) as jumlah FROM namatabel
2.GROUP BY nim ORDER BY jumlah DESC;

SELECT COUNT(*) FROM table GROUP BY Field HAVING COUNT(*) > 1
Perintah di atas akan menghitung jumlah data untuk setiap kelompok nim. Secara logika, suatu nim akan unik atau tunggal jika jumlah nimnya adalah 1. Sedangkan nim yang berduplikasi, apabila jumlah data pada nim tersebut adalah lebih dari 1.
Sebagai contoh, perhatikan data yang tersimpan dalam tabel di atas (sampel saja)  berikut ini:
NIM Nama Mhs
001 si A
002 si B
001 si C
003 si D
002 si E
Dari contoh record di atas, setelah diberikan perintah SQL yang telah saya berikan sebelumnya, akan dihasilkan
NIM jumlah
001 2
002 2
003 1
Dari hasil yang diperoleh tampak bahwa terdapat NIM 001 yang berduplikat (sejumlah 2 data) dan NIM 002 yang juga 2 data. Perintah ORDER BY jumlah digunakan untuk mengurutkan jumlah data tiap kelompok NIM mulai yang terbesar. Harapannya supaya data yang duplikat terletak di paling atas dalam tampilan, sehingga kita enak mencarinya.
Gimana.. mudah kan?

Post a Comment