Apa pernyataan SQL paling sederhana yang akan mengembalikan nilai duplikat untuk kolom tertentu dan jumlah kemunculannya dalam tabel database Oracle?
Sebagai contoh: Saya punya JOBS
tabel dengan kolom JOB_NUMBER
. Bagaimana saya bisa mengetahui jika saya memiliki duplikat JOB_NUMBER
, dan berapa kali mereka digandakan?
sql
oracle
duplicate-data
Andrew
sumber
sumber
Jawaban:
sumber
group by
, seperti dalam:select column_one, column_two, count(*) from tablename group by column_one, column_two having count(column_one) > 1;
dll.having count(*) > 1
: DCara lain:
Bekerja dengan baik (cukup cepat) ketika ada indeks aktif
column_name
. Dan itu cara yang lebih baik untuk menghapus atau memperbarui baris duplikat.sumber
Paling sederhana yang bisa saya pikirkan:
sumber
Anda bahkan tidak perlu menghitung di kolom yang dikembalikan jika Anda tidak perlu tahu jumlah duplikat yang sebenarnya. misalnya
sumber
Bagaimana tentang:
Untuk menjawab contoh di atas, akan terlihat seperti:
sumber
Jika beberapa kolom mengidentifikasi baris unik (mis. Tabel relasi) di sana Anda dapat menggunakan yang berikut
Gunakan id baris mis. Emp_dept (empid, deptid, startdate, enddate) anggaplah empid dan deptid adalah unik dan mengidentifikasi baris dalam kasus itu
dan jika tabel tersebut memiliki kunci utama maka gunakan kunci utama alih-alih rowid, mis. id adalah pk lalu
sumber
Perbuatan
akan memberi Anda id baris yang digandakan.
sumber
sumber
Saya biasanya menggunakan fungsi Oracle Analytic ROW_NUMBER () .
Katakanlah Anda ingin memeriksa duplikat anda mengenai indeks yang unik atau kunci utama dibangun pada kolom (
c1
,c2
,c3
). Maka Anda akan pergi dengan cara ini, memunculkanROWID
baris di mana jumlah baris yang dibawaROW_NUMBER()
adalah>1
:sumber
Berikut ini adalah permintaan SQL untuk melakukan itu:
sumber
Saya tahu ini adalah utas lama tapi ini bisa membantu seseorang.
Jika Anda perlu mencetak kolom lain dari tabel sambil memeriksa penggunaan duplikat di bawah ini:
juga dapat menambahkan beberapa filter tambahan di klausa mana jika diperlukan.
sumber
1. solusi
sumber
Anda juga dapat mencoba sesuatu seperti ini untuk mendaftar semua nilai duplikat dalam sebuah tabel katakan reqitem
sumber