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 3.2] % biến động giá so với phiên trước

    📖Cần ôn lý thuyết? Đọc bài giảng Buổi 3: Window Functions — khóa SQL

    Với mỗi mã trong phiên 2026-09-25, hãy so sánh giá đóng cửa với phiên liền trước của chính mã đó (phiên trước là phiên giao dịch gần nhất có dữ liệu, không nhất thiết là ngày liền kề):

    • close_price, prev_close — giá đóng cửa phiên 25/09 và phiên trước;
    • thay_doi = close_price - prev_close;
    • pct_thay_doi = 100 * (close_price - prev_close) / prev_close, làm tròn 2 chữ số thập phân.

    Chỉ giữ các mã có phiên trước. Cả thay_doi và pct_thay_doi in dạng DECIMAL(18,2). Sắp xếp theo pct_thay_doi giảm dần, đồng giá trị thì theo symbol.

    Lưu ý: nếu lọc WHERE trade_date = '2026-09-25' trước khi gọi LAG, sẽ không còn phiên trước để so sánh — hãy tính LAG ở truy vấn con rồi mới lọc ở truy vấn ngoài.

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

      Bảng MarketPrices(symbol, trade_date, close_price).

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

      symbol, close_price, prev_close, thay_doi, pct_thay_doi (TAB); sắp xếp theo pct_thay_doi giảm dần, symbol.

    Ví dụ:

    Đầu vào:

    Đầu ra:

    CEO	20460.00	19800.00	660.00	3.33
    VCS	56400.00	54600.00	1800.00	3.30
    NVB	9800.00	9500.00	300.00	3.16
    HPG	27270.00	26460.00	810.00	3.06
    VCB	95680.00	92920.00	2760.00	2.97
    PVI	57720.00	56160.00	1560.00	2.78
    MBS	26880.00	26160.00	720.00	2.75
    PVS	39140.00	38380.00	760.00	1.98
    FPT	116400.00	118800.00	-2400.00	-2.02
    VNM	65960.00	67320.00	-1360.00	-2.02
    IDC	53000.00	54500.00	-1500.00	-2.75
    SHS	14720.00	15200.00	-480.00	-3.16

    Giải thích:

    12 mã, mỗi mã so với phiên 24/09.

    Chủ đề

    📊 SQLSQLSQL: Buổi 3 – Window FunctionsTất cả môn học

    Đang tải editor...