Průběžné součty pomocí SUM()
Jedním z nejsilnějších využití okenních funkcí je výpočet průběžných součtů: tedy průběžného přehledu určité hodnoty v daném časovém úseku. V tomto cvičení použijeme okenní funkci k výpočtu počtu incidentů pro každé datum a typ incidentu v červenci 2019, a zároveň průběžného součtu celkového počtu incidentů podle typu. Okenní funkce nám umožní vyřešit tento problém jediným dotazem.
Toto cvičení je součástí kurzu
Time Series Analysis in SQL Server
Pokyny k cvičení
- Doplň správnou okenní funkci.
- Doplň klauzuli
PARTITION BYv okenní funkci a rozděl data podle ID typu incidentu. - Doplň klauzuli
ORDER BYv okenní funkci a seřaď data podle data incidentu (ve výchozím, vzestupném pořadí).
Interaktivní cvičení na vyzkoušení si v praxi
Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.
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;