Tổng lũy kế với SUM()
Một trong những cách dùng mạnh mẽ của window function là tính tổng lũy kế: phép cộng dồn liên tục của một giá trị trong một khoảng thời gian. Ở đây, bạn sẽ dùng window function để tính số sự cố xảy ra theo từng ngày và từng loại sự cố trong tháng 7 năm 2019, đồng thời tính cả số lượng lũy kế của tổng số sự cố theo từng loại. Window function sẽ giúp bạn giải bài toán này chỉ với một truy vấn.
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
Hướng dẫn bài tập
- Điền đúng window function.
- Điền mệnh đề
PARTITION BYtrong window function, phân vùng theo ID loại sự cố. - Điền mệnh đề
ORDER BYtrong window function, sắp xếp theo ngày sự cố (theo mặc định là tăng dần).
Bài tập tương tác thực hành trực tiếp
Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.
SELECT
ir.IncidentDate,
ir.IncidentTypeID,
ir.NumberOfIncidents,
-- Get the total number of incidents
___(ir.NumberOfIncidents) OVER (
-- Do this for each incident type ID
PARTITION BY ir.___
-- Sort by the incident date
ORDER BY ir.___
) AS NumberOfIncidents
FROM dbo.IncidentRollup ir
INNER JOIN dbo.Calendar c
ON ir.IncidentDate = c.Date
WHERE
c.CalendarYear = 2019
AND c.CalendarMonth = 7
AND ir.IncidentTypeID IN (1, 2)
ORDER BY
ir.IncidentTypeID,
ir.IncidentDate;