एसक्यूएल पिवट - पंक्तियों को कॉलम में परिवर्तित करने का तरीका जानें



एसक्यूएल पिवट पर यह लेख एक व्यापक गाइड है कि पंक्ति-स्तरीय डेटा को स्तंभ के डेटा को गहराई से उदाहरणों के साथ कैसे परिवर्तित किया जाए।

संबंधपरक तालिकाओं के रूप में डेटा की विनम्र मात्रा में संग्रहित करें। इन तालिकाओं में किसी भी संख्या में पंक्तियाँ और स्तंभ हो सकते हैं। लेकिन, क्या होगा यदि आपको पंक्ति-स्तरीय डेटा को स्तंभ डेटा में बदलना पड़े? खैर, SQL Pivot पर इस लेख में, मैं आपको दिखाऊँगा कि आप पंक्तियों को SQL सर्वर में एक कॉलम में कैसे बदल सकते हैं।

इस लेख में निम्नलिखित विषयों को शामिल किया जाएगा:





SQL में PIVOT क्या है?

PIVOT का उपयोग एकल स्तंभ के अद्वितीय मानों को कई स्तंभों में परिवर्तित करके तालिका-मान को घुमाने के लिए किया जाता है। इसका उपयोग स्तंभ के मानों की पंक्तियों को घुमाने के लिए किया जाता है और शेष स्तंभ मानों पर आवश्यक होने पर एकत्रीकरण को चलाता है।

दूसरी ओर, UNPIVOT का उपयोग विपरीत परिचालनों को करने के लिए किया जाता है। तो, इसका उपयोग किसी विशिष्ट तालिका के स्तंभों को स्तंभ मानों में परिवर्तित करने के लिए किया जाता है।



इस लेख में आगे बढ़ते हुए, हम SQL धुरी के वाक्य विन्यास को समझते हैं।

वाक्य - विन्यास:

NonPivoted ColumnName, [पहला पिवोटेड ColumnName] AS ColumnName, [दूसरा पिवोटेड ColumnName] AS ColumnName, [तीसरा पिवोटेड ColumnName] AS ColumnName, ... [लास्ट पिवोट्ड ColumnName] AS ColumnName FROM (SELECT क्वेरी) जो डेटा का उत्पादन करता है। प्रारंभिक क्वेरी के लिए] PIVOT ([एग्रीगेशन फंक्शन] (ColumName) के लिए [कॉलम का कॉलम जिसका नाम कॉलम हेडर बनेगा] IN ((पहला पिवोट कॉलम), [दूसरा पिवोट कॉलम], [तीसरा पिवोट कॉलम कॉलम] ... [अंतिम छिद्रित स्तंभ])) के रूप में [धुरी तालिका के लिए उपनाम]

यहाँ,आप भी उपयोग कर सकते हैं खंड द्वारा आदेश मूल्यों को आरोही या अवरोही क्रम में क्रमबद्ध करना। अब जब आप जानते हैं कि SQL में PIVOT और इसके मूल सिंटैक्स क्या हैं, तो हम आगे बढ़ते हैं और देखते हैं कि इसका उपयोग कैसे करना है।

जावा में डेटा संरचना और एल्गोरिदम

उदाहरण

आपकी बेहतर समझ के लिए, मैं आपको सभी उदाहरणों को समझाने के लिए निम्न तालिका पर विचार करूंगा।



आपूर्तिकर्ता तालिका:

आपूर्तिकर्ता आईडी DaysofManufacture लागत ग्राहक आईडी खरीद
एक१२1230ग्यारहP1
इक्कीस1543२२पी 2
322. 3. 4. 5ग्यारहP3
१४8765 है२२P1
४२3452 है33P3
३१५४३१33P1
४१2342 हैग्यारहपी 2
५४3654 है२२पी 2
331234ग्यारहP3
१०566832 है33पी 2

आइए हम प्रत्येक ग्राहक द्वारा खर्च की गई औसत लागत को पुनः प्राप्त करने के लिए एक सरल प्रश्न लिखें।

सेलेक्ट कस्टमरिड, एवीजी (कॉस्ट) एज़ एवरेजकॉस्टोफक कस्टमर फ्रॉम सप्लीर्स ग्रुप बाय कस्टमरिड

आउटपुट:

ग्राहक आईडी एवरकॉस्टोफ़क कस्टमर
ग्यारह1787.75
२२4654 है
33५२३ 5.३३

अब, हम कहते हैं कि हम उपरोक्त तालिका को पिवट करना चाहते हैं। यहां, CustomerID कॉलम मान कॉलम हेडर बन जाएंगे।

- एक पंक्ति और तीन कॉलमों के साथ पिवट टेबल बनाएं 'एस्कॉर्स्टस्टॉफ़कॉफ़्टर' का चयन करें 'AS Cost_According_To_Customers, [11], [22], [33] FROM (सेलेक्ट कस्टमर, कॉस्ट फ़र्ज़ी सप्लायर्स) AS सोर्सटेबल PIVOT (AVG (कॉस्ट) फॉर कस्टमरआईडी IN () [११], [२२], [३३]) एएस पिवोटेबल

आउटपुट:

Cost_According_To_Customers ग्यारह२२33
एवरकॉस्टोफ़क कस्टमर 1787.754654 है५२३ 5.३३

ध्यान दें: जब आप उपयोग करते हैं कुल कार्य PIVOT के साथ, शून्य मानों को एकत्रीकरण की गणना करते समय नहीं माना जाता है।

खैर, यह एक बुनियादी उदाहरण था, लेकिन आइए अब समझते हैं कि PIVOT क्लॉज कैसे काम करता है।

PIVOT क्लॉज का कार्य करना

जैसा कि आप ऊपर उल्लेख कर सकते हैं, PIVOT TABLE बनाने के लिए, आपको निम्न चरणों का पालन करना होगा:

  • धुरी के लिए कॉलम चुनें
  • फिर, एक स्रोत तालिका का चयन करें।
  • PIVOT ऑपरेटर को लागू करें, और फिर कुल कार्यों का उपयोग करें।
  • पिवट मानों का उल्लेख करें।

धुरी के लिए कॉलम चुनें

प्रारंभ में, हमें अपने परिणामों में शामिल किए जाने वाले क्षेत्रों को निर्दिष्ट करना होगा। हमारे उदाहरण में, मैंने पिवट तालिका में एवरकॉस्टोफ़कस्टमर कॉलम पर विचार किया। फिर हमने कॉलम हेडर 11, 22 और 33 के साथ तीन अन्य कॉलम बनाए। उदाहरण-

सेलेक्ट 'एवरस्टॉस्टोफक कस्टमर' के रूप में 'कॉस्ट_ऑकिंग रिकॉर्डिंग_ओ_ कस्टमर्स, [11], [22], [33]

स्रोत तालिका का चयन करें

इसके बाद, आपको सेलेक्ट स्टेटमेंट को निर्दिष्ट करना होगा जो पिवट टेबल के लिए सोर्स डेटा लौटाएगा। हमारे उदाहरण में, हम आपूर्तिकर्ता तालिका से CustomerID और लागत लौटा रहे हैं।

(चयन करें ग्राहक, आपूर्तिकर्ताओं से लागत) स्रोत के रूप में

PIVOT ऑपरेटर को लागू करें, और फिर कुल कार्यों का उपयोग करें

इसके बाद, आपको धुरी तालिका बनाते समय उपयोग किए जाने वाले कुल कार्य को निर्दिष्ट करना होगा। हमारे उदाहरण में, मैंने औसत लागत की गणना करने के लिए AVG फ़ंक्शन का उपयोग किया है।

PIVOT (AVG (लागत)

पिवट मानों का उल्लेख करें

अंत में, आपको उन मूल्यों का उल्लेख करना होगा जिन्हें परिणामी पिवट तालिका में शामिल किया जाना है। इन मानों का उपयोग पिवट टेबल में कॉलम हेडिंग के रूप में किया जाएगा।

ग्राहक आईडी के लिए ([११], [२२], [३३]) के रूप में PivotTable

कि PIVOT ऑपरेटर्स कैसे काम करते हैं। SQL PIVOT पर इस लेख में आगे बढ़ते हुए, हम समझते हैं कि यह SQL UNPIVOT से कितना भिन्न है।

SQL UNPIVOT

SQL UNPIVOT ऑपरेटर का उपयोग PIVOT के विपरीत कार्य को करने के लिए किया जाता है। इसका उपयोग कॉलम डेटा को पंक्ति-स्तरीय डेटा में घुमाने के लिए किया जाता है। UNPIVOT का वाक्य-विन्यास, PIVOT के समान है। फर्क सिर्फ इतना है कि आपको इसका उपयोग करना है ' UNPIVOT ”

उदाहरण:

हमें कॉलम सप्लायरआईडी, एएए, बीबीबी और सीसीसी के साथ एक तालिका बनाते हैं। इसके अलावा, कुछ मान डालें।

क्रीएट टेबल सैंपलटेबल (सप्लायरएड इंट, एएए इंट, बीबीबी इंट, सीसीसी इंट) गो इनसो इन्टोमटेबल वैल्यूज (1,3,5,6) इंसर्ट सैंपलटेबल वैल्यूज (2,9,2,8) आईएनएसईटी इंट्रो सैंपलटेबल वैल्यू (3) 8,1,7) GO

आउटपुट:

आपूर्तिकर्ता आईडी एएए बीबीबी सीसीसी
एक
एक

अब, हम कहते हैं कि, हम तालिका को अनप्राइव करना चाहते हैं। ऐसा करने के लिए, आप निम्नलिखित कोड का उल्लेख कर सकते हैं:

सेलेक्ट सप्लायर, कस्टमर्स, प्रॉडक्ट्स FROM (सेलेक्ट सप्लीरड, AAA, BBB, CCC FROM सैंपलटेबल) p UNPIVOT (कस्टमर्स के लिए प्रोडक्ट्स IN (AAA, BBB, CCC)) as example GO
आपूर्तिकर्ता आईडी ग्राहक उत्पाद

एक

एएए

एक

बीबीबी

एक

ओवरराइडिंग और ओवरलोडिंग के बीच अंतर

सीसीसी

एएए

बीबीबी

सीसीसी

एएए

बीबीबी

जावा में वस्तुओं की सरणी

एक

सीसीसी

आप SQL PIVOT और UNPIVOT का उपयोग कैसे कर सकते हैं। इसके साथ, हम इस लेख के अंत में आते हैं। मुझे उम्मीद है कि आप समझ गए होंगे, SQL का उपयोग कैसे करें। यदि आप और अधिक जानने की इच्छा रखते हैं माई एसक्यूएल और इस ओपन-सोर्स रिलेशनल डेटाबेस का पता करें, फिर हमारी जाँच करें जो प्रशिक्षक के नेतृत्व वाले लाइव प्रशिक्षण और वास्तविक जीवन की परियोजना के अनुभव के साथ आता है। यह प्रशिक्षण आपको MySQL को गहराई से समझने में मदद करेगा और आपको इस विषय पर महारत हासिल करने में मदद करेगा।

क्या आप हमसे कोई प्रश्न पूछना चाहते हैं? कृपया SQL पिवट पर इस लेख के टिप्पणी अनुभाग में इसका उल्लेख करें और मैं आपको वापस प्राप्त करूंगा।