Phần 4 — phân tích nâng cao (kết hợp JOIN + CTE + window). Tính giá trị giao dịch của từng khách hàng (Trades → Orders → Accounts → Customers, giá trị = quantity * price), chỉ xét khách hàng có ít nhất một giao dịch.
Trong mỗi customer_type, xếp hạng rk bằng ROW_NUMBER() theo tổng giá trị giảm dần (đồng hạng → customer_id tăng dần) và tính pct_of_type = tỷ trọng % của khách hàng trong tổng giá trị của loại đó (làm tròn 2 chữ số).
Chỉ giữ top 3 mỗi loại. Cột: customer_type, rk, customer_id, full_name, trade_count, total_value, pct_of_type. Sắp theo customer_type, rk.
Bảng Customers, Accounts, Orders, Trades.
customer_type, rk, customer_id, full_name, trade_count, total_value, pct_of_type (TAB).
Ví dụ:
Đầu vào:
Đầu ra:
INDIVIDUAL 1 16 Dinh Thi Uyen 6 703300000.00 28.36
INDIVIDUAL 2 22 Nguyen Thi Chi 7 420525000.00 16.96
INDIVIDUAL 3 5 Hoang Van Em 5 220400000.00 8.89
INSTITUTION 1 36 Quy Dau tu Tang Truong Xanh 4 422600000.00 30.42
INSTITUTION 2 35 Cong ty CP Chung khoan An Binh 4 256600000.00 18.47
INSTITUTION 3 32 Ngan Hang Nong Nghiep Phat Trien 5 204650000.00 14.73
Giải thích:
Đang tải editor...