GROUPING SETS के साथ कस्टम ग्रुपिंग बनाएँ
GROUPING SETS ऑपरेटर हमें वे खास एग्रीगेशन स्तर निर्धारित करने देता है जिनकी हमें आवश्यकता है.
इस परिदृश्य में, मैनेजमेंट ROLLUP जैसा आउटपुट देखना चाहता है लेकिन उतनी अधिक डिटेल नहीं. हाइरार्की के हर स्तर को दिखाने के बजाय, मैनेजमेंट तीन स्तर देखना चाहता है: ग्रैंड टोटल; वर्षवार; और वर्ष, क्वार्टर, तथा महीना (साथ में).
यह अभ्यास पाठ्यक्रम का हिस्सा है
SQL Server में Time Series Analysis
अभ्यास निर्देश
GROUPING SETSका उपयोग करकेGROUP BYभाग पूरा करें. हमें यह चाहिए:- वर्ष, क्वार्टर, और महीना के हर संयोजन के लिए एक पंक्ति (उसी हाइरार्किकल क्रम में)
- हर वर्ष के लिए एक पंक्ति
- ग्रैंड टोटल के साथ एक पंक्ति (अर्थात एक खाली समूह)
इंटरैक्टिव व्यावहारिक अभ्यास
इस अभ्यास को इस नमूना कोड को पूरा करके आज़माएँ।
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;