Sau đợt gộp dữ liệu từ ba chiến dịch marketing, bảng thành viên của TIKI xuất hiện nhiều dòng trùng email. Quy tắc làm sạch: với mỗi email, giữ lại bản ghi có id nhỏ nhất (đăng ký sớm nhất) và xóa các bản ghi còn lại.
Bảng thanhvien:
| Cột | Kiểu | Ý nghĩa |
|---|---|---|
| id | int | Mã tự tăng (khóa, duy nhất) |
| varchar(100) | Email đăng ký | |
| ten | nvarchar(100) | Họ tên |
Cách làm chuẩn: viết CTE đánh số ROW_NUMBER() OVER (PARTITION BY email ORDER BY id) rồi DELETE trực tiếp trên CTE với điều kiện số thứ tự lớn hơn 1.
Email an@gmail.com xuất hiện ở id 1 và id 4 thì id 4 bị xóa, id 1 được giữ.
Script T-SQL tạo bảng thanhvien và chèn dữ liệu.
1≤ số dòng ≤2000; id duy nhất; một email có thể lặp tối đa 20 lần.
Sau DELETE, một SELECT in id, email, ten, sắp xếp theo id tăng dần.
Ví dụ:
Đầu vào:
CREATE TABLE thanhvien (id int, email varchar(100), ten nvarchar(100));
INSERT INTO thanhvien VALUES (1,'an@gmail.com','Nguyen Van An'),(2,'binh@gmail.com','Tran Van Binh'),(3,'chi@gmail.com','Le Thi Chi'),(4,'an@gmail.com','Nguyen V An'),(5,'binh@gmail.com','T V Binh');
Đầu ra:
1 an@gmail.com Nguyen Van An
2 binh@gmail.com Tran Van Binh
3 chi@gmail.com Le Thi Chi
Giải thích:
Đang tải editor...