Đào tạo doanh nghiệpCơ sở Dữ liệu SQL & PostgreSQL Thực chiến: Thiết kế Schema, Tối ưu Truy vấn & Tích hợp AI pgvector
3/8

Giáo trình tự học miễn phí · Dịch vụ hỗ trợ theo nhu cầu.

Bài 0335phút ước tínhCơ bản đến Chuyên sâu

3. Window Functions, CTEs (Common Table Expressions) & Phân Tích Dữ Liệu Nâng Cao

Sử dụng các công cụ phân tích SQL mạnh mẽ nhất: ROW_NUMBER(), RANK(), LEAD(), LAG(), Running Total và đệ quy WITH RECURSIVE.

📈 Các Window Functions Thông Dụng Nhất

  1. ROW_NUMBER() OVER (PARTITION BY ... ORDER BY ...): Đánh số thứ tự trong từng nhóm.
  2. LAG() / LEAD(): Lấy giá trị của dòng trước đó hoặc dòng tiếp theo (so sánh doanh số tháng này vs tháng trước).
  3. SUM() OVER (ORDER BY ...): Tính doanh thu lũy kế dồn tích (Running Total).
example.py
-- TÍNH DOANH SỐ LŨY KẾ  TỶ LỆ TĂNG TRƯỞNG THEO THÁNG BẰNG CTE & WINDOW FUNCTIONS
WITH monthly_revenue AS (
    SELECT 
        DATE_TRUNC('month', order_date) AS order_month,
        SUM(total_amount) AS revenue
    FROM orders
    WHERE status = 'paid'
    GROUP BY DATE_TRUNC('month', order_date)
)
SELECT 
    TO_CHAR(order_month, 'YYYY-MM') AS month,
    revenue,
    SUM(revenue) OVER (ORDER BY order_month) AS running_total,
    LAG(revenue, 1) OVER (ORDER BY order_month) AS prev_month_revenue,
    ROUND(((revenue - LAG(revenue, 1) OVER (ORDER BY order_month)) / 
           NULLIF(LAG(revenue, 1) OVER (ORDER BY order_month), 0) * 100), 2) AS growth_percentage
FROM monthly_revenue
ORDER BY order_month;
Thực hành

Thực hành và tự đánh giá

Viết câu lệnh SQL xếp hạng Top 3 đơn hàng có giá trị cao nhất của TỪNG khách hàng.

🏢 BẠN MUỐN TRIỂN KHAI CHO CẢ PHÒNG BAN / DOANH NGHIỆP?
Đề Xuất Công Ty Tài Trợ & Đào Tạo In-House Trọn Gói

AI Tinh Gọn hỗ trợ khảo sát hiện trạng, kèm 1-1 on-premise bảo mật dữ liệu, setup hạ tầng riêng và xuất hóa đơn VAT hợp pháp cho doanh nghiệp.

⚖️ Bản quyền sở hữu trí tuệ: © 2026 AI Tinh Gọn (aitinhgon.vn) · Giấy phép Creative Commons CC BY-NC-ND 4.0. Cho phép tự học cá nhân, nghiêm cấm thương mại hóa hoặc bán lại. Giáo trình mở →

Tiến độ tự học lưu trên trình duyệt này. Chỉ đánh dấu khi đã kiểm tra sản phẩm thực hành.