Inizia subitoInizia gratis

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

Visualizza corso

esercizio interattivo pratico

Trasforma la teoria in pratica con uno dei nostri esercizi interattivi

Inizia esercizio