Erstelle eine Zusammenfassung mit ROLLUP
Der Operator ROLLUP funktioniert am besten, wenn deine Nicht-Messattribute hierarchisch sind. Andernfalls erhältst du möglicherweise ungewöhnliche Aggregationsstufen, die nicht intuitiv sind.
In diesem Szenario möchten wir die Gesamtzahl der Sicherheitsvorfälle in der Tabelle IncidentRollup aggregieren. Das Management möchte die Daten nach der Kombination aus Kalenderjahr, Kalenderquartal und Kalendermonat aggregiert sehen. Zusätzlich möchten sie separate Aggregatzeilen für Kalenderjahr plus Kalenderquartal sowie separate Aggregatzeilen für jedes Kalenderjahr. Abschließend wünschen sie eine weitere Zeile für die Gesamtsumme. Das alles können wir in einem einzigen Schritt erledigen.
Diese Übung ist Teil des Kurses
Zeitreihenanalyse in SQL Server
Anleitung zur Übung
- Vervollständige die Definition von
NumberOfIncidents, indem du die Anzahl der Vorfälle über jeden Bereich aufsummierst. - Ergänze den
GROUP BY-Abschnitt, einschließlich des OperatorsWITH ROLLUP.
Interaktive Übung
Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.
SELECT
c.CalendarYear,
c.CalendarQuarterName,
c.CalendarMonth,
-- Include the sum of incidents by day over each range
___(ir.___) AS NumberOfIncidents
FROM dbo.IncidentRollup ir
INNER JOIN dbo.Calendar c
ON ir.IncidentDate = c.Date
WHERE
ir.IncidentTypeID = 2
GROUP BY
-- GROUP BY needs to include all non-aggregated columns
c.___,
c.___,
c.___
-- Fill in your grouping operator
WITH ___
ORDER BY
c.CalendarYear,
c.CalendarQuarterName,
c.CalendarMonth;