पंक्तियों को कॉलम में बदलना
इस पाठ में, आपने सीखा कि 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 ___