Dipecahkan: ganda

Pembaharuan Terakhir: 09/13/2023

SQL, singkatan dari Structured Query Language, adalah bahasa manajemen basis data yang digunakan untuk mengelola data yang disimpan dalam basis data relasional. Meskipun doublon (biasanya disebut sebagai “duplikat” dalam bahasa Inggris) adalah istilah kunci dalam dunia basis data, istilah ini mengacu pada data yang berlebihan atau berulang yang mungkin menghabiskan ruang secara tidak perlu atau menimbulkan kebingungan bagi para analis. Konsekuensinya, mendeteksi dan menangani duplikat tersebut menjadi aspek penting dalam manajemen database.

Menemukan dan menghapus duplikat adalah kebutuhan umum dalam manajemen database dan biasanya ditangani oleh kueri SQL. Kueri semacam itu mengidentifikasi baris yang kolom tertentu diduplikasi. Contoh paling umum dari hal ini adalah pengguna dengan email yang sama di tabel registrasi pengguna.

Mengidentifikasi Catatan Duplikat dalam SQL

Mengidentifikasi duplikat memerlukan penulisan pernyataan SELECT yang menyertakan GROUP BY untuk kolom yang harus unik. Sintaks berikut melakukan hal itu:

SELECT column_name, COUNT(column_name)
FROM table_name
GROUP BY column_name
HAVING COUNT(column_name) > 1;

Dengan menggunakan klausa HAVING, kita dapat menempatkan kondisi pada hasil agregat: dalam hal ini, jika hitungannya lebih dari 1, menunjukkan adanya duplikasi.

Menghapus Catatan Duplikat

Setelah mengidentifikasi duplikat, langkah selanjutnya adalah menghapusnya dari database. Strategi yang paling umum adalah menyimpan satu titik data berulang dan menghapus sisanya. Begini caranya:

WITH cte AS (
  SELECT ROW_NUMBER() OVER (
    PARTITION BY column_name
    ORDER BY column_name
  ) row_num
  FROM table_name
)
DELETE FROM cte
WHERE row_num > 1;

Kode ini menggunakan Common Table Expression (CTE) yang menyertakan fungsi jendela ROW_NUMBER() untuk menetapkan nomor unik pada setiap baris dalam partisinya. Kemudian, semua baris yang memiliki nomor baris lebih besar dari 1 akan dihapus.

Perpustakaan dan Fungsi yang Terlibat

Dalam mengelola duplikat, fungsi bawaan SQL memainkan peran penting. Fungsi COUNT() adalah kuncinya menentukan adanya duplikat. Dikombinasikan dengan GROUP BY, ini memberi kita nomor setiap item unik di kolom yang diinginkan.

ROW_NUMBER() adalah fungsi penting lainnya dalam menangani duplikat. Ini adalah bagian dari kelas fungsi yang dikenal sebagai fungsi jendela, yang melakukan penghitungan pada sekumpulan baris tabel yang terkait dengan baris saat ini.

CTE, meskipun bukan suatu fungsi, adalah a kumpulan hasil bernama sementara yang membantu kami dalam membentuk pertanyaan kompleks. Penggunaannya dalam menghilangkan duplikat dari database SQL menggarisbawahi kekuatan dan fleksibilitasnya. Penggunaan CTE sering kali menghasilkan skrip SQL yang lebih mudah dibaca dan dipelihara, sehingga menambah daya tariknya dalam bidang manajemen basis data.

Kesimpulannya, menangani ganda atau duplikat dalam database SQL merupakan keterampilan penting dalam manajemen database. Dengan pemahaman yang kuat tentang fungsi bawaan SQL dan penggunaan CTE, seseorang dapat secara efektif menjaga database mereka bebas dari data yang berlebihan dan dioptimalkan untuk kueri.

Pos terkait: