Trang chủ>  Blog >  Kiến thức chuyên môn >  10 SQL Pattern Quan Trọng Cho Data Analyst – Phải Thuộc Lòng

10 SQL Pattern Quan Trọng Cho Data Analyst – Phải Thuộc Lòng


SQL là “vũ khí số 1” của mọi Data Analyst. Nhưng không phải ai cũng biết cách dùng SQL hiệu quả – nhiều bạn chỉ dừng ở SELECT, WHERE đơn giản. 💡 Đây là 10 SQL pattern (mẫu câu truy vấn) phổ biến nhất trong công việc Data Analyst, kèm ví dụ thực tế để bạn có thể copy–paste và áp dụng ngay.

  302 lượt xem

Nội dung bài viết

Lấy Top N Bản Ghi Theo Nhóm

SELECT customer_id, order_date, revenue

FROM (

  SELECT *,

         ROW_NUMBER() OVER(PARTITION BY customer_id ORDER BY order_date ASC) AS rn

  FROM orders

) t

WHERE rn = 1;

📌 Use case: Lấy đơn hàng đầu tiên của từng khách để phân tích cohort.

Tính Lũy Kế (Running Total)

SELECT order_date,

       SUM(revenue) OVER(ORDER BY order_date ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS cum_revenue

FROM orders;

📌 Dùng để vẽ chart doanh thu tích lũy theo thời gian (YTD).

So Sánh Tháng Này vs Tháng Trước

SELECT month,

       revenue,

       revenue - LAG(revenue) OVER(ORDER BY month) AS diff

FROM monthly_sales;

📌 Dùng để làm phân tích MoM (Month over Month).

Tìm Outlier (Giá Trị Bất Thường)

SELECT *

FROM sales

WHERE revenue > AVG(revenue) * 1.5;

📌 Dùng khi cần phát hiện đơn hàng bất thường cao bất thường.

Tìm Khách Hàng Không Mua Lại

SELECT DISTINCT c.customer_id

FROM customers c

LEFT JOIN orders o ON c.customer_id = o.customer_id

WHERE o.customer_id IS NULL;

📌 Dùng cho phân tích churn.

Gộp Nguồn Dữ Liệu Khác Schema

SELECT customer_id, revenue, '2025-Q1' AS period FROM orders_q1

UNION ALL

SELECT customer_id, revenue, '2025-Q2' AS period FROM orders_q2;

📌 Dùng khi dữ liệu chia theo quý, cần gộp thành 1 bảng.

Tìm Top 3 Sản Phẩm Theo Doanh Thu

SELECT product_id, SUM(revenue) AS total_revenue

FROM orders

GROUP BY product_id

ORDER BY total_revenue DESC

LIMIT 3;

📌 Dùng để tìm sản phẩm bán chạy nhất.

Join Bảng Lookup

SELECT o.order_id, o.revenue, p.product_name

FROM orders o

JOIN products p ON o.product_id = p.product_id;

📌 Dùng để gắn thêm thông tin tên sản phẩm từ bảng dimension.

Phân Loại Khách Theo Doanh Thu (CASE WHEN)

SELECT customer_id,

       CASE

         WHEN SUM(revenue) > 100000 THEN 'VIP'

         WHEN SUM(revenue) BETWEEN 50000 AND 100000 THEN 'Regular'

         ELSE 'Low-Value'

       END AS customer_segment

FROM orders

GROUP BY customer_id;

📌 Dùng để phân nhóm khách hàng phục vụ marketing.

Tính Tỷ Lệ Đóng Góp (Percent of Total)

SELECT product_id,

       SUM(revenue) AS total_revenue,

       SUM(revenue) * 100.0 / SUM(SUM(revenue)) OVER() AS pct_contribution

FROM orders

GROUP BY product_id;

📌 Dùng để vẽ Pareto Chart (80/20) hoặc phân tích đóng góp theo sản phẩm.

Tips Pro

  • Dùng CTE (WITH) để chia query phức tạp thành nhiều bước dễ đọc
  • Thêm comment giải thích logic → đồng đội dễ maintain
  • Kiểm tra hiệu năng bằng EXPLAIN → tối ưu join và index

Kết Luận

✅ Thuộc 10 pattern này = 80% nhu cầu phân tích của Data Analyst đã được giải quyết
✅ Giúp bạn giảm thời gian viết query, tăng thời gian phân tích insight
✅ Là nền tảng để học nâng cao hơn: Window Functions, dbt, BigQuery

🎓 Khoá “SQL for Analyst" – tại MCI Academy
• Học từ cơ bản → nâng cao, luyện tập 100+ bài tập thực tế
• Làm mini project: phân tích cohort, churn, MoM growth
• Mentor review query & tối ưu performance

📞 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


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ỏ.

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

SQL là gì? Vì sao SQL là kỹ năng bắt buộc cho Data Analyst

Trong bài viết này, chúng ta sẽ cùng tìm hiểu SQL là gì, vì sao nó là kỹ năng bắt buộc cho Data Analyst, và cách bắt đầu học SQL hiệu quả.

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