


Ringkaskan dan susun kaedah biasa untuk mengalih keluar data pendua daripada pangkalan data Oracle
Artikel ini membawakan anda pengetahuan yang berkaitan tentang Oracle Ia terutamanya memperkenalkan data pendua dalam jadual yang sering dikosongkan semasa pembersihan data. Jadi bagaimana untuk menanganinya dalam Oracle? Mari kita lihat bersama-sama, saya harap ia akan membantu semua orang.
Tutorial yang disyorkan: "Tutorial Video Oracle"
Mencipta data ujian
create table nayi224_180824(col_1 varchar2(10), col_2 varchar2(10), col_3 varchar2(10)); insert into nayi224_180824 select 1, 2, 3 from dual union all select 1, 2, 3 from dual union all select 5, 2, 3 from dual union all select 10, 20, 30 from dual ; commit; select*from nayi224_180824;
COL_1 | COL_2 | COL_3 |
---|---|---|
1 | 2 | 3 |
1 | 2 | 3 |
5 | 2 | 3 |
10 | 20 | 30 |
Untuk lajur yang ditentukan, semak set keputusan selepas penyahduplikasian
kaedah
select distinct t1.* from nayi224_180824 t1;
COL_1 | COL_2 | COL_3 |
---|---|---|
10 | 20 | 30 |
1 | 2 | 3 |
5 | 2 | 3 |
adalah sangat terhad, kerana ia hanya boleh menyahduplikasi semua lajur pertanyaan. Jika saya ingin menyahduplikasi col_2 dan col3, maka set hasil saya hanya boleh mempunyai lajur col_2 dan col_3, tetapi bukan col_1.
select distinct t1.col_2, col_3 from nayi224_180824 t1
COL_2 | COL_3 |
---|---|
2 | 3 |
20 | 30 |
Tetapi ia juga merupakan cara yang paling mudah dan paling mudah untuk difahami.
row_number()
select * from (select t1.*, row_number() over(partition by t1.col_2, t1.col_3 order by 1) rn from nayi224_180824 t1) t1 where t1.rn = 1 ;
COL_1 | COL_2 | COL_3 | RN |
---|---|---|---|
1 | 2 | 3 | 1 |
10 | 20 | 30 | 1 |
Menulis lebih menyusahkan, tetapi ia mempunyai fleksibiliti yang lebih besar.
Untuk lajur yang ditentukan, cari semua baris pendua
kiraan mempunyai
select * from nayi224_180824 t where (t.col_2, t.col_3) in (select t1.col_2, t1.col_3 from nayi224_180824 t1 group by t1.col_2, t1.col_3 having count(1) > 1)
COL_1 | COL_2 | COL_3 |
---|---|---|
1 | 2 | 3 |
1 | 2 | 3 |
5 | 2 | 3 |
Jadual perlu disemak dua kali, yang akan menjadi tidak cekap. Tidak disyorkan.
kira lebih
select * from (select t1.*, count(1) over(partition by t1.col_2, t1.col_3) rn from nayi224_180824 t1) t1 where t1.rn > 1 ;
COL_1 | COL_2 | COL_3 | RN |
---|---|---|---|
1 | 2 | 3 | 3 |
1 | 2 | 3 | 3 |
5 | 2 | 3 | 3 |
Hanya semak jadual sekali sahaja, disyorkan.
Padam semua baris pendua
delete from nayi224_180824 t where t.rowid in ( select rid from (select t1.rowid rid, count(1) over(partition by t1.col_2, t1.col_3) rn from nayi224_180824 t1) t1 where t1.rn > 1);
Hanya ubah suai sedikit pernyataan di atas.
Padamkan data pendua dan simpan satu
Kaedah fungsi analitik
delete from nayi224_180824 t where t.rowid in (select rid from (select t1.rowid rid, row_number() over(partition by t1.col_2, t1.col_3 order by 1) rn from nayi224_180824 t1) t1 where t1.rn > 1);
Mempunyai fleksibiliti tinggi yang konsisten bagi fungsi analitik. Anda boleh melakukan apa sahaja yang anda mahu dengan pengelompokan dan menukar klausa orderby untuk mencapai keperluan seperti "kekalkan id maksimum".
kumpulan mengikut
delete from nayi224_180824 t where t.rowid not in (select max(rowid) from nayi224_180824 t1 group by t1.col_2, t1.col_3);
mengorbankan sedikit fleksibiliti sebagai pertukaran untuk kecekapan yang lebih tinggi.
Tutorial yang disyorkan: "Tutorial Video Oracle"
Atas ialah kandungan terperinci Ringkaskan dan susun kaedah biasa untuk mengalih keluar data pendua daripada pangkalan data Oracle. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Penyelesaian kepada Oracle tidak boleh dibuka termasuk: 1. Mulakan perkhidmatan pangkalan data; 2. Mulakan pendengar; 3. Periksa konflik pelabuhan; 4. Menetapkan pembolehubah persekitaran dengan betul; 5. Pastikan perisian firewall atau antivirus tidak menghalang sambungan; 6. Periksa sama ada pelayan ditutup; 7. Gunakan RMAN untuk memulihkan fail rasuah; 8. Periksa sama ada nama perkhidmatan TNS betul; 9. Periksa sambungan rangkaian; 10. Pasang semula perisian Oracle.

Kaedah untuk menyelesaikan masalah penutupan kursor Oracle termasuk: secara eksplisit menutup kursor menggunakan pernyataan Tutup. Mengisytiharkan kursor dalam klausa kemas kini supaya ia ditutup secara automatik selepas skop berakhir. Mengisytiharkan kursor dalam klausa menggunakan supaya ia secara automatik ditutup apabila pembolehubah PL/SQL yang berkaitan ditutup. Gunakan pengendalian pengecualian untuk memastikan kursor ditutup dalam keadaan pengecualian. Gunakan kolam sambungan untuk menutup kursor secara automatik. Lumpuhkan penyerahan automatik dan penangguhan kursor kelewatan.

Memadam semua data dalam Oracle memerlukan langkah -langkah berikut: 1. Mewujudkan sambungan; 2. Lumpuhkan kekangan utama asing; 3. Padam data jadual; 4. Mengemukakan transaksi; 5. Membolehkan kekangan utama asing (pilihan). Pastikan untuk menyokong pangkalan data sebelum pelaksanaan untuk mengelakkan kehilangan data.

Oracle Database Paging menggunakan rownum pseudo-columns atau mengambil pernyataan untuk melaksanakan: Rownum pseudo-columns digunakan untuk menapis hasil mengikut nombor baris dan sesuai untuk pertanyaan kompleks. Pernyataan Fetch digunakan untuk mendapatkan bilangan baris pertama yang ditentukan dan sesuai untuk pertanyaan mudah.

Di Oracle, gelung gelung boleh membuat kursor secara dinamik. Langkah -langkahnya ialah: 1. Tentukan jenis kursor; 2. Buat gelung; 3. Buat kursor secara dinamik; 4. Melaksanakan kursor; 5. Tutup kursor. Contoh: Kursor boleh dibuat kitaran demi litar untuk memaparkan nama dan gaji 10 pekerja teratas.

Untuk menghentikan pangkalan data Oracle, lakukan langkah -langkah berikut: 1. Sambungkan ke pangkalan data; 2. Shutdown segera; 3. Shutdown membatalkan sepenuhnya.

Kenyataan SQL boleh dibuat dan dilaksanakan berdasarkan input runtime dengan menggunakan SQL dinamik Oracle. Langkah -langkah termasuk: menyediakan pemboleh ubah rentetan kosong untuk menyimpan penyataan SQL yang dihasilkan secara dinamik. Gunakan pernyataan melaksanakan segera atau sediakan untuk menyusun dan melaksanakan pernyataan SQL dinamik. Gunakan pembolehubah bind untuk lulus input pengguna atau nilai dinamik lain ke SQL dinamik. Gunakan melaksanakan segera atau laksanakan untuk melaksanakan pernyataan SQL yang dinamik.

Membina Sistem Fail Teragih Hadoop (HDFS) pada sistem CentOS memerlukan pelbagai langkah. Artikel ini menyediakan panduan konfigurasi ringkas. 1. Sediakan untuk memasang JDK pada peringkat awal: Pasang JavadevelopmentKit (JDK) pada semua nod, dan versi mesti bersesuaian dengan Hadoop. Pakej pemasangan boleh dimuat turun dari laman web rasmi Oracle. Konfigurasi Pembolehubah Alam Sekitar: Edit /etc /Fail Profil, tetapkan pembolehubah persekitaran Java dan Hadoop, supaya sistem dapat mencari laluan pemasangan JDK dan Hadoop. 2. Konfigurasi Keselamatan: Log masuk tanpa kata laluan SSH untuk menjana kunci SSH: Gunakan perintah ssh-keygen pada setiap nod
