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