Bắt đầu ngayBắt đầu miễn phí

Khám phá window frame

Bên cạnh các mệnh đề PARTITION BYORDER BY, window function có thể kèm theo các frame để cho máy chủ cơ sở dữ liệu biết phạm vi nào được tính là liên quan đến cửa sổ.

Tại đây, chúng ta sẽ xem bốn loại frame khác nhau để hiểu kết quả sẽ khác nhau ra sao. Với mỗi ví dụ, bạn hãy điền window frame cho truy vấn sau:

SELECT
    ir.IncidentDate,
    ir.IncidentTypeID,
    SUM(ir.NumberOfIncidents) OVER (
        PARTITION BY ir.IncidentTypeID
        ORDER BY ir.IncidentDate
        << WINDOW FRAME >>
    ) AS NumberOfIncidents
FROM dbo.IncidentRollup ir;    

Chúng ta sẽ chỉ định ROWS hoặc RANGE tùy theo việc muốn bao gồm từng hàng riêng lẻ hay một khoảng giá trị. Ta sẽ chỉ định mệnh đề "preceding", cho biết cần bao nhiêu hàng (hoặc khoảng giá trị nào) trước hàng hiện tại. Ta cũng sẽ chỉ định mệnh đề "following", cho biết phạm vi tính từ hàng hiện tại trở về sau.

Bài tập này là một phần của khóa học

Phân tích chuỗi thời gian trong SQL Server

Xem khóa học

Bài tập tương tác thực hành

Biến lý thuyết thành hành động với một trong các bài tập tương tác của chúng tôi

Bắt đầu bài tập