LoslegenKostenlos loslegen

Eigene Gruppierungen mit GROUPING SETS erstellen

Der Operator GROUPING SETS ermöglicht es uns, genau die Aggregationsebenen festzulegen, die wir brauchen.

In diesem Szenario möchte das Management etwas Ähnliches wie einen ROLLUP, aber mit weniger Details. Statt jede Aggregationsebene in der Hierarchie zu zeigen, sollen drei Ebenen angezeigt werden: Gesamtsummen; nach Jahr; sowie nach Jahr, Quartal und Monat.

Diese Übung ist Teil des Kurses

Zeitreihenanalyse in SQL Server

Kurs anzeigen

Anleitung zur Übung

  • Vervollständige den GROUP BY-Teil mit GROUPING SETS. Wir wollen sehen:
  • Eine Zeile für jede Kombination aus Jahr, Quartal und Monat (in genau dieser hierarchischen Reihenfolge)
  • Eine Zeile für jedes Jahr
  • Eine Zeile mit Gesamtsummen (also eine leere Gruppe)

Interaktive Übung

Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.

SELECT
	c.CalendarYear,
	c.CalendarQuarterName,
	c.CalendarMonth,
	SUM(ir.NumberOfIncidents) AS NumberOfIncidents
FROM dbo.IncidentRollup ir
	INNER JOIN dbo.Calendar c
		ON ir.IncidentDate = c.Date
WHERE
	ir.IncidentTypeID = 2
-- Fill in your grouping operator here
GROUP BY ___ ___
(
  	-- Group in hierarchical order:  calendar year,
    -- calendar quarter name, calendar month
	(___, ___, ___),
  	-- Group by calendar year
	(___),
    -- This remains blank; it gives us the grand total
	()
)
ORDER BY
	c.CalendarYear,
	c.CalendarQuarterName,
	c.CalendarMonth;
Code bearbeiten und ausführen