Làm sạch dữ liệu bằng SQL: NULL, trùng lặp, chuẩn hóa
Khi làm phân tích dữ liệu, điều đầu tiên bạn cần làm không phải là vẽ biểu đồ, mà là làm sạch dữ liệu. Dữ liệu bẩn có thể đến từ form điền tay, hệ thống nhập liệu lỗi, hoặc sai sót khi merge nhiều bảng. → Trong bài viết này, bạn sẽ học cách dùng SQL để: • Xử lý giá trị NULL • Xoá hoặc lọc dòng trùng lặp • Chuẩn hóa dữ liệu trước khi phân tích hoặc đưa vào Power BI/Tableau
Nội dung bài viết
1. Xử lý NULL – giá trị thiếu
NULL là giá trị “không xác định” trong SQL, và cần xử lý đúng để tránh sai số.
📌 a. Thay thế NULL bằng giá trị mặc định
SELECT
customer_name,
COALESCE(phone_number, 'Chưa cập nhật') AS phone_display
FROM customers;
COALESCE() sẽ trả về giá trị đầu tiên khác NULL.
📌 b. Lọc bỏ dòng có NULL ở trường quan trọng
SELECT *
FROM orders
WHERE amount IS NOT NULL;
📌 c. Tính toán vẫn đúng khi có NULL
SELECT
AVG(amount) AS avg_order
FROM orders
WHERE amount IS NOT NULL;
2. Loại bỏ dòng trùng lặp
Khi import từ nhiều nguồn, bạn dễ gặp dữ liệu bị duplicate.
🧹 a. Chỉ giữ dòng duy nhất (DISTINCT)
SELECT DISTINCT customer_id, email
FROM customers;
📌 Dùng khi bạn cần loại bỏ các dòng trùng hệt nhau.
🧼 b. Giữ bản ghi mới nhất theo ID
SELECT *
FROM (
SELECT *,
ROW_NUMBER() OVER(PARTITION BY customer_id ORDER BY updated_at DESC) AS rn
FROM customers
) sub
WHERE rn = 1;
→ Cách này giữ lại bản ghi mới nhất cho mỗi customer_id.
3. Chuẩn hóa dữ liệu: chữ hoa, định dạng, số điện thoại…
✨ a. Chuẩn hóa chữ (UPPER, LOWER, INITCAP)
SELECT
LOWER(email) AS email_lower,
INITCAP(customer_name) AS name_formatted
FROM customers;
INITCAP() viết hoa chữ cái đầu từng từ (tùy hệ CSDL: dùng trong Oracle, Snowflake...)
✨ b. Xoá khoảng trắng dư
SELECT
TRIM(full_name) AS cleaned_name
FROM customers;
✨ c. Format số điện thoại
SELECT
REGEXP_REPLACE(phone_number, '[^0-9]', '', 'g') AS phone_cleaned
FROM customers;
Dùng REGEXP_REPLACE để xóa ký tự không phải số ((), -, dấu cách…)
4. Checklist làm sạch dữ liệu bằng SQL
✅ Kiểm tra & xử lý NULL:
- Dùng COALESCE() để thay giá trị
- Lọc dòng thiếu dữ liệu quan trọng
✅ Xử lý trùng lặp:
- Dùng DISTINCT
- Kết hợp ROW_NUMBER() để giữ bản ghi đúng
✅ Chuẩn hóa:
- Dùng LOWER(), TRIM(), REGEXP_REPLACE()
- Format định dạng ngày, số điện thoại, tên khách hàng
Học SQL làm sạch dữ liệu chuyên nghiệp tại MCI Academy
Làm sạch dữ liệu là bước nền tảng quan trọng nhất trong Data Analytics.
Dữ liệu bẩn = insight sai = quyết định sai.
🎓 Khóa học SQL for Newbies – MCI Academy
- Lộ trình 30 ngày: Từ SELECT → JOIN → Cleaning → Window Function
- Dữ liệu thực chiến: CRM, đơn hàng, phiếu khảo sát, hệ thống loyalty
- Mentor 1–1: Góp ý từng truy vấn, giúp bạn hiểu sâu logic
- 200+ bài tập + checklist mẫu + file luyện SQL sạch
📞 Hotline: 0352.433.233
📧 Email: cskh@mcivietnam.com
👉 Đăng ký ngay để thành thạo làm sạch dữ liệu bằng SQL – và phân tích đúng ngay từ bước đầu tiên!

Các khóa học
- Mastering AWS : From Basics to Applications Specialized
- Data Engineer Track Specialized
- Combo Data Engineering Professional Hot
- AI & DASHBOARD – CHỈ 990K Hot
- Combo Python Level 1 & Level 2 Bestseller
- Business Intelligence Track Hot
- Data Science Track Bestseller
- Data Analyst Professional (Data Analyst with Python Track) Bestseller
- RPA UiPath Nâng Cao: Chiến Thuật Automation Cho Chuyên Gia Specialized
- RPA UiPath cho Người Mới Bắt Đầu: Thành Thạo Automation Chỉ Trong 1 Ngày Specialized
- Business Analyst Fast Track Bestseller
- Business Analyst Bestseller
Đăng ký tư vấn khóa học
*Vui lòng nhập số điện thoại của bạn
*Vui lòng nhập họ tên của bạn
*Vui lòng chọn giới tính
*Vui lòng chọn 1 trường