ÎncepețiÎncepe gratuit

Totaluri cumulate cu SUM()

Una dintre cele mai utile aplicații ale funcțiilor de fereastră este calcularea totalurilor cumulate: un contor continuu al unei anumite valori pe o perioadă de timp. Aici vrem să folosim o funcție de fereastră pentru a calcula câte incidente au avut loc în fiecare dată și tip de incident din iulie 2019, dar și un total cumulat al numărului de incidente pe tip de incident. O funcție de fereastră ne va ajuta să rezolvăm această problemă într-o singură interogare.

Acest exercițiu face parte din cursul

Analiza seriilor de timp în SQL Server

Vezi cursul

Instrucțiuni pentru exercițiu

  • Completează funcția de fereastră corectă.
  • Completează clauza PARTITION BY din funcția de fereastră, partiționând după ID-ul tipului de incident.
  • Completează clauza ORDER BY din funcția de fereastră, ordonând după data incidentului (în ordinea implicită, crescătoare).

Exercițiu interactiv practic

Încearcă acest exercițiu completând acest cod de exemplu.

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;
Editează și rulează codul