Monday, November 28, 2016

Cek data duplikat di mysql

Sambil menunggu waktu makan siang dan mengantuk, tiba-tiba ada atasan datang meminta bantuan untuk melakukan pengecekan duplikasi data yang ada di database untuk dibuat menjadi data cleansing ujungnya. Data yang hendak dicek lumayan besar ada sekitar 5000 record dalam database tersebut. Lumayan juga sih untuk sebuah data, dalam database tersebut.

Praktik
Lalu apa yang harus dilakukan, jawabannya adalah ya dikerjakan. Lha wong permintaan dari atasan, dikerjakan dengan cepat kalo perlu supaya bisa cepat-cepat makan siang. Kita ambil ajah database yang akan dicek lalu dikumpulkan di xampp atau localhost di komputer masing-masing. Setelah proses import selesai. Lalu jalankan di lingkungan xampp dan masuk ke phpmyadmin. Dari sini atau dari console bisa juga kita lakukan. Perintah sederhana untuk melakukan pengecekan data yang duplikasi dengan perintah count dan having.
SELECT email,COUNT(*) AS COUNT FROM `pegawai` GROUP BY email HAVING COUNT(*) > 1
Maksud sintaks diatas adalah kita melakukan seleksi terhadap email dan melakukan penghitungan yang dimasukan kedalam tabel COUNT dari tabel pegawai yang kita kelompokkan berdasarkan email dengan kondisi dalam tabel COUNT lebih besar dari satu.
Ternyata hasil ini masih belum cukup, harus ada detail dari masing-masing data yang diinginkan. Maka dicarilah cara lain, supaya dapat mengakomodir hal tersebut. Dimana setiap hasil email yang duplikat didapat nama pegawai, bagian, dan alamat. Terpaksalah dengan sangat dan menjelang perut lapar banget, segera dibuatlah sintaks untuk database itu.
SELECT email,COUNT(*) AS count, GROUP_CONCAT(nama_pegawai ORDER by nama_pegawai), GROUP_CONCAT(bagian_pegawai ORDER BY bagian_pegawai),GROUP_CONCAT(alamat_pegawai ORDER BY alamat_pegawai) FROM pegawai GROUP BY email HAVING COUNT(*) >1
Dari sini sebenarnya sudah bisa diketahui cuma masalahnya tampilannya belum begitu detail. Tapi untuk sementara sudah oke.

No comments:

Post a Comment