November 1, 2009
Misalkan saya punya sebuah Table_A trus didalam tabel tersebut ada Kolom_A, Kolom_B, Kolom_C, ketika insert data ke table tersebut ternyata terjadi insert dua kali/lebih (duplikasi data), dibawah akan dijelaskan caranya menghapus duplikasi data.
Misal saya punya table barang dan didalam barang itu terdapat 3 kolom (ID, nama_barang, deskripsi), lalu saya insert dengan data yang sama antara FLASHDISK dan HARDISK, yang saya inginkan adalah data itu hanya ada satu kali di table saya.
create table barang(
ID VARCHAR2(4 BYTE) NOT NULL,
Nama_barang VARCHAR2(10 BYTE),
Deskripsi number(8)
)
insert into barang values ('1', 'FLASHDISK', '100000');
insert into barang values ('2', 'FLASHDISK', '100000');
insert into barang values ('3', 'FLASHDISK', '100000');
INSERT INTO barang VALUES ('4','HARDISK', '990000');
INSERT INTO barang VALUES ('5','HARDISK', '990000');
INSERT INTO barang VALUES ('6','HARDISK', '990000');
INSERT INTO barang VALUES ('7','HARDISK', '990000');
Setelah terbuat table dan datanya, ketikkan perintah sql di bawah untuk melihat hasilnya
SELECT * FROM barang;
ID NAMA_BARANG HARGA
– ——————— —–
1 FLASHDISK 100000
2 FLASHDISK 100000
3 FLASHDISK 100000
4 HARDISK 990000
5 HARDISK 990000
6 HARDISK 990000
7 HARDISK 990000
SELECT nama_barang FROM barang HAVING count(*) > 1 GROUP BY nama_barang;
NAMA_BARANG
———–
FLASHDISK
HARDISK
DELETE FROM barang WHERE rowid NOT IN
(SELECT max(rowid) FROM barang GROUP BY nama_barang HAVING count(*)>=1)
Dan hasilnya adalah:
SELECT * FROM barang;
ID NAMA_BARANG HARGA
– ————– ——
2 FLASHDISK 100000
7 HARDISK 990000
Filed under Database