MySQL cara mencari data duplikat dengan SQL

Mencari data duplikat memang gampang. Namun, bagaimana jika datanya ada banyak dan sangat random? Mari kita lihat selengkapnya
10117  
       

Mencari data duplikat memang pekerjaan yang bisa dibilang gampang, tinggal di telusuri saja datanya satu per satu. Namun, bagaimana jika datanya ada banyak dan sangat random? Tentu saja ini akan merepotkan.  Padahal hal ini bisa diselesaikan dengan satu langkah mudah.

Mengenal Structured Query Language (SQL)

SQL atau Structured Query Language adalah satu-satunya cara komunikasi antara Penyedia database dengan pihak luar. Apapun tampilannya sebetulnya proses dibelakangnya itu menggunakan SQL ini. Kalau dikelompokan, SQL ini terbagi kedalam 4 fungsi utama, yaitu pembuatan dan modifikasi struktur data, memanggil data, merubah dan menghapus data, dan prosedural data yang merupakan gabungan dari semua itu.

Untuk mencari data duplikat cukup menggunakan fungsi memanggil data saja. Dalam pemanggilan data ini akan terlibat beberapa perintah dalam SQL.

Perintah SELECT

Untuk memanggil data dibutuhkan perintah SELECT yang mana perintah ini biasanya digunakan untuk memanggil data, bahkan untuk data yang hanya bersifat logical. Seperti memanggil tanggal sekarang, menghitung 2+1, dan sebagainya. Setelah perintah SELECT selain nama kolom, bisa juga ditanam berbagai fungsi seperti DISTINCT dan COUNT.

Fungsi DISTINCT

Fungsi DISTINCT ini adalah untuk menandakan bahwa kemunculan yang kedua kalinya harus dieleminasi. Jadi jika ada hasil yang sama hanya akan diambil salah satu saja.

Fungsi COUNT()

Fungsi COUNT digunakan untuk menghitung frequensi atau kemunculan banyaknya data yang akan terakumulasikan. Untuk lebih jelasnya bisa dilihat nanti dibagian contoh kasus.

Perintah FROM

Perintah FROM seperti artinya dalam bahasa Indonesia, data dari mana yang akan kita SELECT. Biasanya ini mengacu pada nama tabel, view, atau bahkan kumpulan data yang bersifat logical yang tidak terdefinisi nama tabela atau view-nya.

Perintah GROUP BY

Perintah GROUP BY adalah perintah yang akan mengumpulkan hasil yang sama dari suatu kolom pencarian jika muncul data yang sama.

Perintah HAVING

Perintah HAVING ini sebetulnya mirip perintah WHERE, namun jika ingin memberikan kondisi atau penyaringan query yang telah di GROUP BY harus menggunakan Having, having disini yang akan menyaring hanya data duplikat saja yang muncul (Frequensi kemunculan lebih dari 1). Dengan demikian fungsi COUNT juga akan digunakan disini sebagai penyaring.

Perintah ORDER BY

Perintah ORDER BY digunakan untuk mengurutkan data, bisa secara menaik atau menurun. Dalam perintah ini juga akan digunakan fungsi COUNT supaya kemunculan yang paling banyak akan ditampilkan dibaris pertama.

Contoh Kasus

Dalam contoh kasus ini anggap saja ada tabel wilayah indonesia, yang terdiri dari provinsi, kabupaten_kota, dan kecamatan. Adapun kasusnya itu adalah, bagaimana cara mencari kecamatan yang duplikat. Mari kita lihat potongan kode dibawah ini

SELECT 
  DISTINCT kecamatan, 
  COUNT(*) 
FROM 
  wilayah 
GROUP BY 
  kecamatan 
HAVING 
  COUNT(*) > 1 
ORDER BY 
  COUNT(*) DESC

Dari hasil query tersebut adalah melihat banyaknya kemunculan kecamatan yang sama dari tabel wilayah dan diurutkan dari jumlah kemunculan terbanyak.

Demikian. Semoga Membantu.

Leave a Reply

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>