Esplorare i window frame
Oltre alle clausole PARTITION BY e ORDER BY, le funzioni finestra possono includere dei frame che indicano al motore del database cosa considerare rilevante per la finestra.
Qui esamineremo quattro frame diversi per capire come cambiano i risultati. Per ciascun esempio, vogliamo compilare il frame della finestra per la seguente query:
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;
Specificheremo ROWS o RANGE in base al fatto che vogliamo includere singole righe o un intervallo di valori. Specificheremo la clausola "preceding", che indica quante righe (o quale intervallo di valori) vogliamo prima della riga corrente. Indicheremo anche la clausola "following", che specifica cosa vogliamo dalla riga corrente in avanti.
Questo esercizio fa parte del corso
Analisi delle serie temporali in SQL Server
esercizio interattivo pratico
Trasforma la teoria in pratica con uno dei nostri esercizi interattivi
Inizia esercizio