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

पंक्तियों को कॉलम में बदलना

इस पाठ में, आपने सीखा कि PIVOT किसी एक कॉलम के यूनिक मानों को कई कॉलम में बदल देता है.

paper_shop_monthly_sales के डेटा का विश्लेषण करते हुए, आपको समझ आता है कि इस टेबल की संरचना उस रिपोर्ट के लिए उपयुक्त नहीं है जो आप बनाना चाहते हैं.

आप इस रूप में दिखने वाली एक रिपोर्ट बनाना चाहते हैं:

|year_of_sale|notebooks|pencils|crayons|
|------------|---------|-------|-------|
| 2018       | 150     | 150   | 80    |
| 2019       | 230     | 130   | 170   |

दूसरे शब्दों में, आप पंक्तियों में मौजूद डेटा को कॉलम में बदलना चाहते हैं, और हर साल के लिए units का योग करना चाहते हैं.

जैसा कि आपने पिछले अभ्यासों से सीखा, products के नाम और units को अलग करना होगा। यह subselect में किया गया है, उसे देखिए.

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

SQL Server डेटाबेस में डेटा क्लीनिंग

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

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

  • हर product के लिए pivot किए गए कॉलम select करें.
  • PIVOT ऑपरेटर के अंदर units का sum शामिल करें.
  • FOR स्टेटमेंट के बाद, उस कॉलम का नाम दें जिसमें वे मान हैं जो आगे चलकर कॉलम हेडर बनेंगे.
  • PIVOT ऑपरेटर को paper_shop_pivot नाम दें.

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

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

SELECT
	year_of_sale,
    -- Select the pivoted columns
	___, 
	___, 
	___
FROM
   (SELECT 
		SUBSTRING(product_name_units, 1, charindex('-', product_name_units)-1) product_name, 
		CAST(SUBSTRING(product_name_units, charindex('-', product_name_units)+1, len(product_name_units)) AS INT) units,	
		year_of_sale
	FROM paper_shop_monthly_sales) sales
-- Sum the units for column that contains the values that will be column headers
PIVOT (SUM(___) FOR ___ IN (notebooks, pencils, crayons))
-- Give the alias name
AS ___
कोड संपादित करें और चलाएँ