Prozkoumávání rámců okna
Kromě klauzulí PARTITION BY a ORDER BY mohou okenní funkce obsahovat i rámce, které databázovému stroji říkají, co má být zahrnuto do daného okna.
Podíváme se na čtyři různé rámce, abychom pochopili, jak se budou výsledky lišit. V každém příkladu chceme doplnit rámec okna do následujícího dotazu:
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;
Zvolíme ROWS nebo RANGE podle toho, zda chceme pracovat s jednotlivými řádky, nebo s rozsahem hodnot. Určíme klauzuli „preceding", která říká, kolik řádků (nebo jaký rozsah hodnot) chceme zahrnout před aktuálním řádkem. Určíme také klauzuli „following", která říká, co chceme zahrnout od aktuálního řádku dále.
Toto cvičení je součástí kurzu
Time Series Analysis in SQL Server
Interaktivní praktické cvičení
Proměňte teorii v praxi s jedním z našich interaktivních cvičení
Začít cvičení