← Tất cả Dataset Tải File ecommerce_orders_stage2.csv
2. SQL

Tập Dữ Liệu Đơn Hàng Thương Mại Điện Tử (E-Commerce Orders)

Tập dữ liệu bảng đơn hàng e-commerce phục vụ luyện tập viết truy vấn SQL từ SELECT cơ bản, JOIN nhiều bảng đến các hàm cửa sổ Window Functions phức tạp.

1 Cấu trúc bảng dữ liệu (Data Schema Preview)

Tên Cột (Column) Kiểu Dữ Liệu Mô Tả Ý Nghĩa
User_ID VARCHAR(50) Mã người dùng mua hàng
Order_ID VARCHAR(50) Mã đơn hàng duy nhất
Order_Date DATE Ngày đặt hàng
Category_ID INT Mã danh mục sản phẩm
Product_Name VARCHAR(255) Tên sản phẩm
Quantity INT Số lượng mua
Amount DECIMAL(12,2) Giá trị đơn hàng (VND)
Payment_Method VARCHAR(50) Phương thức thanh toán
Status VARCHAR(30) Trạng thái đơn (Completed / Cancelled)
Xem trước 3 dòng dữ liệu mẫu:
User_ID Order_ID Order_Date Category_ID Product_Name Quantity Amount Payment_Method Status
U-501 ORD-8001 2026-06-01 101 iPhone 15 Pro Max 1 34,990,000 Credit Card Completed
U-502 ORD-8002 2026-06-02 102 iPad Air 5 2 29,800,000 E-Wallet Completed
U-503 ORD-8003 2026-06-03 101 Samsung Galaxy S24 1 22,990,000 COD Cancelled

2 Danh sách Đề bài thực hành từ Cơ bản đến Nâng cao

Dễ Bài 1

Bài 1: Lọc đơn hàng hoàn thành thanh toán bằng Thẻ tín dụng

Viết câu lệnh SQL lấy ra danh sách các đơn hàng có `Status = 'Completed'` và `Payment_Method = 'Credit Card'`, sắp xếp theo `Amount` giảm dần.

Cú pháp: `SELECT * FROM orders WHERE Status = 'Completed' AND Payment_Method = 'Credit Card' ORDER BY Amount DESC;`
Trung bình Bài 2

Bài 2: Tính tổng chi tiêu và số đơn thành công của từng User

Viết truy vấn `GROUP BY User_ID` tính tổng tiền `SUM(Amount)` và tổng số đơn thành công `COUNT(Order_ID)`. Chỉ lấy những User có tổng chi tiêu > 30,000,000 VND.

Sử dụng `GROUP BY User_ID HAVING SUM(Amount) > 30000000;`
Nâng cao Bài 3

Bài 3: Xếp hạng giá trị đơn hàng của từng khách bằng Window Function

Viết câu lệnh `DENSE_RANK() OVER (PARTITION BY User_ID ORDER BY Amount DESC)` để xếp hạng các đơn hàng của từng người dùng.

Cú pháp: `SELECT User_ID, Order_ID, Amount, DENSE_RANK() OVER(PARTITION BY User_ID ORDER BY Amount DESC) as rank_order FROM orders;`
← Quay lại Giai đoạn 2 Làm Bài Test Kiểm Tra →