Inizia subitoInizia gratis

Totali progressivi con SUM()

Uno degli usi più potenti delle funzioni finestra è il calcolo dei totali progressivi: un conteggio cumulativo di un determinato valore su un intervallo di tempo. Qui vogliamo usare una funzione finestra per calcolare quanti incidenti si sono verificati in ciascuna data e per ciascun tipo di incidente a luglio 2019, oltre a un conteggio progressivo del numero totale di incidenti per tipo di incidente. Una funzione finestra ci aiuterà a risolvere questo problema in un’unica query.

Questo esercizio fa parte del corso

Analisi delle serie temporali in SQL Server

Visualizza corso

Istruzioni dell'esercizio

  • Completa con la funzione finestra corretta.
  • Compila la clausola PARTITION BY nella funzione finestra, partizionando per ID del tipo di incidente.
  • Compila la clausola ORDER BY nella funzione finestra, ordinando per data dell’incidente (nel suo ordine predefinito, crescente).

esercizio interattivo pratico

Prova questo esercizio completando questo codice di esempio.

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;
Modifica ed esegui il codice