Kom igångKom igång gratis

Utforska fönsterramar

Utöver PARTITION BY- och ORDER BY-satserna kan fönsterfunktioner innehålla ramar som talar om för databasmotorn vad som ska ingå i fönstret.

Här tittar vi på fyra olika ramar för att förstå hur resultaten skiljer sig åt. I varje exempel vill vi fylla i fönsterramen för följande fråga:

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;    

Vi anger ROWS eller RANGE beroende på om vi vill inkludera enskilda rader eller ett intervall av värden. Vi anger "preceding"-satsen, som talar om hur många rader (eller vilket intervall av värden) vi vill ha före den aktuella raden. Vi anger också "following"-satsen, som talar om vad vi vill ha från den aktuella raden och framåt.

Den här övningen är en del av kursen

Tidsserieanalys i SQL Server

Visa kurs

Interaktiv övning med praktiskt arbete

Gör teori till handling med en av våra interaktiva övningar

Starta övningen