100 bài thực hành Subquery & CTE
– Chia 8 nhóm chủ đề từ căn bản đến real-world scenarios.
– Mỗi bài: đề bài + SQL solution + giải thích logic chi tiết.
– Code PostgreSQL 14+ chạy được, có chú thích nếu khác MySQL/SQL Server.
Vì sao bộ 100 bài này có giá trị
Subquery và CTE là 2 công cụ phải master nếu muốn viết SQL ở mức intermediate trở lên. Nhưng đọc lý thuyết không đủ — phải tự tay viết và debug để thành phản xạ. Bộ 100 bài này được thiết kế để bạn vừa học vừa hành ngay trong tuần, mỗi ngày 5–10 bài.
Nội dung 8 nhóm
– Nhóm 1 (Bài 1–15): Subquery căn bản — Scalar, Row, Table.
– Nhóm 2 (Bài 16–30): IN, EXISTS, ANY, ALL — khi nào dùng cái nào.
– Nhóm 3 (Bài 31–45): Correlated Subquery + cách chuyển sang JOIN/Window.
– Nhóm 4 (Bài 46–60): CTE căn bản — WITH clause, chain, set operations.
– Nhóm 5 (Bài 61–70): Recursive CTE — hierarchy, sequence, graph traversal.
– Nhóm 6 (Bài 71–80): Multiple CTEs — RFM, cohort, YoY growth, market basket.
– Nhóm 7 (Bài 81–90): Performance & Anti-patterns — 10 lỗi phổ biến.
– Nhóm 8 (Bài 91–100): Real-world scenarios — dashboard, churn, retention, segmentation.
Cách học hiệu quả
– Đọc đề bài → tự viết solution → so sánh với lời giải.
– Nếu sai, đọc giải thích để hiểu vì sao mình sai.
– Mỗi ngày làm 5–10 bài. Sau 10–20 ngày hoàn thành 100 bài.
– Sau 30 ngày, quay lại làm lại — sẽ thấy nhanh hơn rõ rệt.
Tải tài liệu
Tải DOCX — 100 bài thực hành Subquery & CTE
Định dạng: .docx | Cập nhật: 05/2026
Năm điều quan trọng nhất sau 100 bài
– EXISTS thường tốt hơn IN — đặc biệt cho NOT case với NULL.
– JOIN thường tốt hơn correlated subquery — nhanh hơn 10–100 lần.
– Window function thay correlated cho top-N, rank, lag/lead.
– CTE chain cho query phức tạp — đọc top-down dễ hơn nested.
– EXPLAIN ANALYZE trên data thật — đừng tin lý thuyết, đo lường.
Một SQL developer giỏi không phải là người viết được query phức tạp nhất — mà là người biến query phức tạp thành đơn giản và dễ đọc.
Minh An
Code snippets trong tài liệu được test trên PostgreSQL 14+. Một số syntax có thể khác trên MySQL, SQL Server, Oracle — kiểm tra documentation của DBMS đang dùng trước khi áp dụng vào production. Tài liệu mang tính tham khảo — hiệu năng thực tế phụ thuộc vào dataset, index, và phiên bản DBMS.