RobustX / Chương trình học / Vị trí công việc / Data Analyst / Quản lý & truy vấn dữ liệu với SQL

Quản lý & truy vấn dữ liệu với SQL

Trong thế giới định hướng bởi dữ liệu, SQL (Structured Query Language) không chỉ là một kỹ năng – nó là ngôn ngữ giao tiếp toàn cầu và không thể thiếu. Bất kể bạn sử dụng công cụ BI, ngôn ngữ lập trình hay nền tảng dữ liệu nào, sự thành thạo SQL vẫn luôn là nền tảng cốt lõi. Khóa học này được thiết kế để đưa bạn từ việc biết viết những câu lệnh cơ bản đến việc thực sự làm chủ SQL, trang bị cho bạn tư duy của một chuyên gia có khả năng kiến tạo, quản lý và khai thác dữ liệu một cách chuyên nghiệp.

Chương trình sẽ đưa bạn đi sâu vào ba trụ cột của một chuyên gia SQL. Đầu tiên, bạn sẽ làm chủ các kỹ thuật truy vấn phân tích nâng cao, sử dụng Common Table Expressions (CTEs) để viết code sạch sẽ, dễ bảo trì và Window Functions để giải quyết các bài toán phức tạp như xếp hạng, phân tích theo kỳ. Tiếp theo, bạn sẽ học nghệ thuật tối ưu hóa hiệu suất, biết cách “nhìn thấu” cơ chế hoạt động của cơ sở dữ liệu qua Execution Plan và áp dụng Index một cách chiến lược để xử lý hàng triệu bản ghi trong chớp mắt. Cuối cùng, bạn sẽ được trang bị kỹ năng làm việc với các kiểu dữ liệu hiện đại như JSONArray ngay trong SQL.

Thời lượng: 30h

KẾT QUẢ ĐẠT ĐƯỢC

Yêu cầu tiên quyết:

    • Biết cách thao tác với dữ liệu dạng bảng (CSV, Excel, Pandas,…).
    • Có tư duy logic và từng tiếp xúc với phân tích dữ liệu là một lợi thế.

Nội dung khóa học

 1. Viết SQL có cấu trúc với CTEs
  • Ôn tập Subquery và CTE:
    • Khi nào nên dùng Subquery, ưu nhược điểm so với CTE.
    • Tại sao CTE (WITH … AS) lại trở thành “chuẩn” trong các hệ thống dữ liệu lớn.
  • Thực hành chuyển đổi Subquery thành CTE:
    • Chuyển hóa các truy vấn lồng nhau (nested queries) thành CTE, làm tăng khả năng tái sử dụng, dễ debug và kiểm thử.
  • Ứng dụng CTE cho phân tích nhiều bước:
    • Thiết kế các bước xử lý tuần tự, chia nhỏ bài toán phức tạp thành nhiều khối logic – giúp quản lý dễ dàng và nâng cấp hiệu quả.
 2. Làm chủ Window Functions
  • Cấu trúc Window Function:
    • Giải thích cú pháp OVER(), PARTITION BY, ORDER BY – xác định “cửa sổ” phân tích trên tập dữ liệu.
  • Hàm xếp hạng:
    • ROW_NUMBER, RANK, DENSE_RANK, NTILE – ứng dụng tìm top sản phẩm/khách hàng, chia nhóm dữ liệu động.
  • Hàm điều hướng (Navigation):
    • LEAD, LAG, FIRST_VALUE, LAST_VALUE – lấy giá trị trước/sau, phân tích so sánh theo kỳ.
  • Hàm tổng hợp trên cửa sổ:
    • SUM(), AVG(), COUNT() OVER (…) để tính doanh số lũy kế, trung bình động, xu hướng phát triển.
  • Thực hành:
    • Xây dựng báo cáo ranking, moving average, phân tích tăng trưởng, giữ chân khách hàng qua từng kỳ.
 3. Xử lý các kiểu dữ liệu phức tạp
  • Truy vấn và thao tác với JSON:
    • Đọc dữ liệu dạng key-value, thao tác với nested object, trích xuất trường sâu trong cột JSON.
    • Viết truy vấn chuyển đổi JSON thành bảng phân tích, ứng dụng trên PostgreSQL, BigQuery…
  • Kiểu dữ liệu Array:
    • Khái niệm mảng trong SQL – khi nào nên sử dụng.
    • Thao tác UNNEST để “nổ” mảng thành từng dòng, sử dụng CARDINALITY để đếm số phần tử.
  • So sánh, lồng ghép kiểu dữ liệu phức tạp:
    • Kết hợp JSON, Array với Window Functions, CTE để phân tích nâng cao.
 4. Tối ưu hóa Hiệu suất Truy vấn
  • Vòng đời của một câu truy vấn SQL:
    • Từ Parsing, Planning, đến Execution – cơ chế máy chủ thực thi câu lệnh SQL ra sao.
  • Đọc & phân tích EXPLAIN PLAN:
    • Biết cách nhận diện “nút thắt cổ chai”, các phép toán tiêu tốn tài nguyên (Full Table Scan, Hash Join…).
    • Phân tích chi phí từng bước, xác định vị trí cần tối ưu.
  • Hiểu sâu về Index:
    • Giới thiệu B-Tree Index, các loại Index phổ biến.
    • Khi nào nên – không nên tạo Index để đạt hiệu quả tối ưu.
  • Chiến lược tối ưu hóa truy vấn:
    • Chọn đúng kiểu dữ liệu, hạn chế dùng SELECT *, ưu tiên truy vấn chỉ lấy trường cần thiết.
5. BÀI THỰC HÀNH CUỐI KHÓA: Phân tích Toàn diện Hành vi Người dùng trên một Nền tảng E-commerce
  • Yêu cầu:
    1. Chuẩn bị dữ liệu: Sử dụng CTEs để join và làm sạch dữ liệu từ các bảng users, orders, order_items, products.
    2. Phân tích Xếp hạng: Sử dụng Window Functions (RANK, DENSE_RANK) để tìm ra top 10 khách hàng chi tiêu nhiều nhất và top 5 sản phẩm bán chạy nhất trong mỗi danh mục.
    3. Phân tích Theo thời gian: Sử dụng Window Functions (LAG, running SUM) để tính toán sự tăng trưởng doanh thu so với tháng trước và doanh thu lũy kế theo từng tháng.
    4. Phân tích Cohort: Xây dựng một bảng phân tích giữ chân khách hàng theo tháng đăng ký đầu tiên.
    5. Tối ưu hóa (Bonus): Phân tích EXPLAIN PLAN của một trong các câu lệnh trên và đề xuất cách tạo INDEX để cải thiện hiệu suất.

Bài viết liên quan