Các lượt nộp
    Danh sách bài
    Trang chủ
    Báo lỗi
    solution
    Đăng nhập
    Đăng nhập

    Đề bài: [SQL 10.2] Tối ưu truy vấn: bỏ hàm trên cột ngày

    📖Cần ôn lý thuyết? Đọc bài giảng Buổi 10: Index & Transaction + Review toàn bộ khóa — khóa SQL

    Đồ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.

    • Định dạng đầu vào:

      Bảng Trades.

    • Định dạng đầu ra:

      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:

    Chỉ tính giao dịch trong tháng 09/2026.

    Chủ đề

    📊 SQLSQLSQL: Buổi 10 – Index, Transaction & CapstoneTất cả môn học

    Đang tải editor...