शुरू करेंमुफ़्त में शुरू करें

ROLLUP के साथ एक सारांश बनाएँ

ROLLUP ऑपरेटर तब सबसे बेहतर काम करता है जब आपके non-measure attributes पदानुक्रमित (hierarchical) हों. अन्यथा, आप ऐसे अजीब एग्रीगेशन लेवल्स पर पहुँच सकते हैं जिनका सहज अर्थ नहीं निकलता.

इस परिदृश्य में, हम IncidentRollup टेबल में सुरक्षा घटनाओं (security incidents) की कुल संख्या को एग्रीगेट करना चाहते हैं. प्रबंधन यह डेटा कैलेंडर वर्ष, कैलेंडर तिमाही, और कैलेंडर माह के संयोजन के अनुसार एग्रीगेटेड देखना चाहता है. इसके अलावा, वे कैलेंडर वर्ष + कैलेंडर तिमाही के लिए अलग-अलग एग्रीगेट लाइन्स, साथ ही प्रत्येक कैलेंडर वर्ष के लिए अलग-अलग एग्रीगेट लाइन्स भी देखना चाहते हैं. अंत में, वे ग्रैंड टोटल के लिए एक और लाइन चाहते हैं. हम यह सब एक ही ऑपरेशन में कर सकते हैं.

यह अभ्यास पाठ्यक्रम का हिस्सा है

SQL Server में Time Series Analysis

पाठ्यक्रम देखें

अभ्यास निर्देश

  • NumberOfIncidents की परिभाषा पूरी करें, प्रत्येक रेंज में घटनाओं की संख्या को जोड़कर.
  • GROUP BY सेगमेंट भरें, जिसमें WITH ROLLUP ऑपरेटर शामिल हो.

इंटरैक्टिव व्यावहारिक अभ्यास

इस अभ्यास को इस नमूना कोड को पूरा करके आज़माएँ।

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;
कोड संपादित करें और चलाएँ