Database, Kinh nghiệm thực tế, Oracle

Xác định dữ liệu trùng lặp sử dụng SQL

1. Vấn đề: Làm thế nào để xác định được các bản ghi bị trùng lặp dữ liệu ở trong bảng ?

Giả sử bạn có bảng để lưu thông tin khách hàng tên là bảng KHACHHANG với cấu trúc như sau
CREATE TABLE KHACHHANG
(
DIENTHOAI NUMBER,
NAME VARCHAR2(100 BYTE),
DIACHI VARCHAR2(100 BYTE),
GIOITINH VARCHAR2(5 BYTE)
)

Sau một thời gian lưu trữ thông tin các khách hàng, bạn muốn lựa chọn cột DIENTHOAI là PRIMARY KEY (để xác định thông tin duy nhất của các khách hàng). Tuy nhiên khi bạn thực hiện lệnh thêm chỉ định PRIMARY KEY thì báo lỗi sau:

alter table khachhang add constraint khachhang_dienthoai_pk primary key(DIENTHOAI);
ORA-02437: cannot validate (HUYTRAN.KHACHHANG_DIENTHOAI_PK) – primary key violated
Bản chất của lỗi này là do trong dữ liệu của bạn có bản ghi bị trùng giá trị DIENTHOAI

2.Vậy làm sao để xác định ra các số điện thoại đang bị trùng thông tin này ?

Các bạn có thể sử dụng lệnh SQL sau:
select DIENTHOAI, count(*) from KHACHHANG group by DIENTHOAI having count(*) > 1

DIENTHOAI COUNT(*)
———- ———-
888764123 2
888866128 2
886723021 2

Nếu bạn mới bắt đầu trên con đường phân tích dữ liệu và chưa biết nên đi từng bước thế nào, các bạn có thể tham khảo tại đây:  https://talent5.com.vn/phan-tich-du-lieu-cho-nguoi-moi-bat-dau

 

Leave a Reply

avatar
  Subscribe  
Notify of