Trang chủ>  Blog >  Kiến thức chuyên môn >  CTE (WITH) – Tối ưu truy vấn phức tạp

CTE (WITH) – Tối ưu truy vấn phức tạp


Khi phân tích dữ liệu, bạn sẽ gặp những truy vấn dài, lồng nhiều cấp và khó đọc. CTE (Common Table Expression) là “vũ khí bí mật” giúp chia nhỏ truy vấn thành từng bước, dễ hiểu và dễ bảo trì – giống như chia code thành các hàm nhỏ.

  316 lượt xem

Nội dung bài viết

1. CTE là gì và vì sao quan trọng?

  • CTE là một khối tạm thời được định nghĩa bằng từ khóa WITH, có thể được tham chiếu nhiều lần trong truy vấn chính.
    • Thay vì viết một câu SQL khổng lồ, bạn tách ra thành từng bước logic: lọc dữ liệu, tính toán, rồi ghép lại.
    • Hỗ trợ đệ quy (recursive CTE) – rất hữu ích cho dữ liệu phân cấp (ví dụ: cây phòng ban, cấu trúc danh mục sản phẩm).

Ví dụ đơn giản:

WITH sales_2025 AS (

    SELECT customer_id, SUM(total_amount) AS revenue

    FROM orders

    WHERE order_date BETWEEN '2025-01-01' AND '2025-12-31'

    GROUP BY customer_id

)

SELECT c.customer_name, s.revenue

FROM customers c

JOIN sales_2025 s ON c.id = s.customer_id

ORDER BY s.revenue DESC;

 

2. Lợi ích khi dùng CTE

Dễ đọc & bảo trì: Mỗi CTE giống một “bước tính toán” có tên rõ ràng.
Tái sử dụng: Một CTE có thể gọi nhiều lần trong cùng truy vấn (tiết kiệm code).
Giảm lỗi: Dễ debug vì có thể chạy riêng từng CTE để kiểm tra kết quả trung gian.
Hiệu năng tốt hơn Subquery lồng nhau: Một số hệ quản trị tối ưu hóa tốt hơn khi dùng CTE.

 

3. Giá trị mang lại

🎓 Học viên: Học cách viết truy vấn phức tạp theo từng bước logic – dễ đọc hơn, chuyên nghiệp hơn.
🏢 Doanh nghiệp: Truy vấn dễ bảo trì, giảm thời gian đào tạo khi người mới tiếp quản code.

 

4. Điều kiện áp dụng & lưu ý

  • Đặt tên CTE ngắn gọn, có nghĩa (ví dụ: sales_agg, active_customers).
    • Giới hạn số lượng CTE lồng nhau (3–5 là hợp lý) – quá nhiều có thể làm truy vấn khó theo dõi.
    • Với CTE đệ quy, luôn có điều kiện dừng (stop condition) để tránh vòng lặp vô hạn.
    • Kiểm tra Execution Plan để đảm bảo CTE không tạo nhiều lần quét dữ liệu không cần thiết.

 

5. Kết luận

CTE giúp bạn biến những câu SQL “bún” khó đọc thành truy vấn có cấu trúc rõ ràng, dễ mở rộng và dễ kiểm thử. Đây là kỹ năng quan trọng khi làm việc với báo cáo phức tạp hoặc khi tham gia dự án lớn.

🎓 Khóa học SQL tại MCI Academy
• Học cách tách logic truy vấn thành nhiều CTE rõ ràng.
• Thực hành viết CTE đệ quy để phân tích dữ liệu phân cấp.
• Mentor hướng dẫn tối ưu CTE để tránh lạm dụng và giữ hiệu năng tốt.
📞 Hotline: 0352.433.233
📧 Email: cskh@mcivietnam.com

 

Chương trình đào tạo: Phân tích dữ liệu, Khoa học dữ liệu, Kĩ sư dữ liệu, Lập trình ứng dụng.
Chất lượng nhất - Uy tín nhất - Nhiều học viên tin tưởng nhất
Hơn 8000 học viên ưu tú đã tốt nghiệp
Đă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 địa điểm học

*Vui lòng chọn giới tính

*Vui lòng chọn 1 trường


Các bài viết liên quan


Làm chủ SQL – Nền tảng phân tích dữ liệu trong thời đại số

Trong bối cảnh doanh nghiệp vận hành dựa trên dữ liệu, SQL (Structured Query Language) đã trở thành kỹ năng không thể thiếu đối với mọi vị trí liên quan đến phân tích, báo cáo và ra quyết định. Nếu Excel giúp bạn tính toán trong phạm vi một file, thì SQL cho phép truy cập trực tiếp vào cơ sở dữ liệu của doanh nghiệp, xử lý hàng triệu dòng dữ liệu chỉ trong vài giây. Khóa học SQL tại Học viện Công nghệ MCI được thiết kế cho người mới bắt đầu, giúp học viên nắm vững kỹ năng truy vấn, phân tích và xử lý dữ liệu thực tế – nền tảng cần thiết để học Power BI, Python và các kỹ năng Data Analyst chuyên sâu.

🔥 SQL Server Management Studio (SSMS) – Trái tim của thế giới cơ sở dữ liệu 🧠💾

💡 Nếu Python là ngôn ngữ để phân tích dữ liệu, thì SQL Server Management Studio (SSMS) là “bàn điều khiển trung tâm” giúp bạn quản lý, giám sát và tương tác trực tiếp với dữ liệu trong doanh nghiệp. Dù bạn là Data Analyst, Developer hay Admin – SSMS là công cụ không thể thiếu trong mọi hệ thống dữ liệu chuyên nghiệp.

🧠 ETL – Hệ thống nạp dữ liệu của thế giới Data hiện đại

💡 Dữ liệu không tự nhiên mà có — nó được thu thập, làm sạch và vận chuyển mỗi ngày qua hàng trăm pipeline. Đằng sau mọi dashboard đẹp, mọi mô hình AI thông minh, đều là ETL (Extract – Transform – Load): quá trình đưa dữ liệu từ nguồn thô → sạch → dùng được. Nếu Data Visualization là “gương mặt”, thì ETL chính là trái tim của hệ thống dữ liệu doanh nghiệp.

Các bài viết liên quan