Đồng nghiệp viết truy vấn báo cáo giao dịch tháng 09/2026 theo mã chứng khoán như sau (chạy chậm vì hàm bọc quanh cột trade_date làm index trên cột này không dùng được — non-sargable):
SELECT symbol, COUNT(*), SUM(quantity), SUM(quantity * price)
FROM Trades
WHERE YEAR(trade_date) = 2026 AND MONTH(trade_date) = 9
GROUP BY symbol;
Hãy viết lại cho cùng kết quả nhưng dùng điều kiện khoảng ngày trên cột trần (trade_date >= '2026-09-01' AND trade_date < '2026-10-01') để tận dụng được index.
Xuất các cột symbol, trade_count (số giao dịch), total_qty (tổng khối lượng), total_value (tổng quantity * price), sắp theo symbol.
Bảng Trades.
symbol, trade_count, total_qty, total_value (TAB), sắp theo symbol.
Ví dụ:
Đầu vào:
Đầu ra:
CEO 3 5500 122500000.00
FPT 4 2850 341000000.00
HPG 3 1300 35000000.00
IDC 3 650 32850000.00
MBS 5 6450 156875000.00
NVB 4 2300 20800000.00
PVI 5 3500 185150000.00
PVS 5 7750 294000000.00
SHS 3 7000 109500000.00
VCB 7 4650 428350000.00
VCS 8 13500 822000000.00
VNM 3 2600 178750000.00
Giải thích:
Đang tải editor...