Aan de slagGa gratis aan de slag

Voortschrijdende totalen met SUM()

Een van de krachtigste toepassingen van windowfuncties is het berekenen van voortschrijdende totalen: een doorlopende optelling van een bepaalde waarde over een bepaalde periode. Hier willen we met een windowfunctie berekenen hoeveel incidenten er op elke datum en per incidenttype in juli 2019 hebben plaatsgevonden, én een voortschrijdende optelling van het totale aantal incidenten per incidenttype. Met één query kunnen we dit oplossen met een windowfunctie.

Deze oefening maakt deel uit van de cursus

Tijdreeksanalyse in SQL Server

Cursus bekijken

Oefeninstructies

  • Vul de juiste windowfunctie in.
  • Vul de PARTITION BY-clausule in de windowfunctie in, met een partitie op incidenttype-ID.
  • Vul de ORDER BY-clausule in de windowfunctie in, sorteer op incidentdatum (in de standaard, oplopende volgorde).

Praktische interactieve oefening

Probeer deze oefening eens door deze voorbeeldcode in te vullen.

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;
Code bewerken en uitvoeren