2012-07-24 14 views
7

कोई कॉलम को पंक्तियों में परिवर्तित करना क्यों चाहेगा (यानी पिवोटिंग)? यह किस समस्या को हल करता है?डाटाबेस पिवोटिंग - उद्देश्य क्या है?

मुझे कुछ लिंक मिले, लेकिन सवालों के संतोषजनक जवाब नहीं मिला।

http://codeghar.wordpress.com/2007/11/03/pivot-tables/

http://msdn.microsoft.com/en-us/library/ms177410%28SQL.105%29.aspx

उत्तर

7

आमतौर पर, ऐसा इसलिए होता है क्योंकि लेआउट एक रिपोर्ट में बेहतर काम करता है, या पिवोटिंग के बाद यूजर इंटरफेस।

सामान्यीकृत डेटाबेस पर डेटा के परिणामस्वरूप कई रिकॉर्ड्स के "आकार" में डेटा हो सकता है, जहां यूआई उन रिकॉर्ड को फ़ील्ड के रूप में देखना चाहता है। डेटा सामान्यीकरण बहुत अच्छा है, लेकिन जब संक्षेप में, प्राकृतिक प्रारूप में डेटा का प्रतिनिधित्व करने की बात आती है, तो पिवोटिंग अक्सर आवश्यक होती है।

example here

अनुमोदित, उदाहरण जो मैंने लिंक किया है वह एक्सेल है, एक वास्तविक डीबी नहीं है, लेकिन चित्रों का एक उदाहरण वर्णन करता है जहां पिवोट डेटा अधिक प्राकृतिक दिखता है, और अवधारणा एक जैसी है।

+0

धन्यवाद! उस उदाहरण को देखकर, मैं पिवोटिंग का एक संभावित उपयोग देख सकता हूं - मान लीजिए कि हम 3 नए उत्पाद प्रोड जी, प्रोड एच, प्रोड I जोड़ना चाहते हैं। पिवोटेड तरीके (जीआई टेबल) का उपयोग करके हम नए उत्पादों को आसानी से बढ़ाकर जोड़ सकते हैं स्तंभों की संख्या बढ़ाने की बजाय पंक्तियां। इस प्रकार, नए कॉलम जोड़ने की कोई आवश्यकता नहीं है। बेशक, इसके लिए और अधिक स्मृति की आवश्यकता है। लेकिन, मुझे आश्चर्य है कि पिवट का उपयोग कौन करना चाहते हैं और क्यों? – Master

2

कैसे एक उदाहरण के रूप में इस के बारे में?

How to PIVOT Data Using T-SQL

डेटा निष्कर्षण में एक आम उम्मीद एक ही पंक्ति में एकाधिक स्तंभों में एकाधिक पंक्तियों के उत्पादन में बदलने की क्षमता है। एसक्यूएल सर्वर 2005/2008 एक प्रश्न में PIVOT ऑपरेटर के साथ ऐसा करने की क्षमता प्रदान करता है।

संपादित

चलें कहते हैं कि तुम एक मेज उस तिथि तक प्रति ग्राहक बिक्री संग्रहीत करता है

कुछ

तरह
Table 
- SaleDate 
- CustomerID 
- SaleAmount 

धुरी का उपयोग करके आप एक ग्रिड है कि प्रति बिक्री योग प्रदर्शित कर सकते हैं ग्राहक/माह/तिमाही/वर्ष

|Client A|Client B|Client C 
-------------------------------- 
2007| 100 | 0  | 150 
2008| 0  | 200 | 160 
2009| 110 | 180 | 100 

यह पूरी तरह से सारांश उद्देश्यों के लिए होगा।

+0

दरअसल, यह पिवोटिंग की परिभाषा है। कोई कॉलम को पंक्तियों में क्यों परिवर्तित करना चाहेगा? उद्देश्य क्या है ? – Master

3

आपके प्रश्न के संबंध में "कोई कॉलम पंक्तियों (यानी पिवोटिंग) में क्यों परिवर्तित करना चाहता है? यह कौन सी समस्या हल करती है?"

यह कोई फर्क नहीं पड़ता कि "डेटा दृष्टि से कैसे दिखता है" बल्कि "यह कैसे व्यवस्थित और संभाला जा सकता है"। अर्थात्:

अधिकांश डेटाबेस में, पंक्तियां "रिकॉर्ड्स - (इकाई, घटना, आदि)" और कॉलम "फ़ील्ड्स (उस इकाई के गुण) का प्रतिनिधित्व करती हैं"। उदाहरण के लिए नीचे डेटा का एक सामान्य डीबी प्रतिनिधित्व है;

Person  | Birth | Height | 
------------------------------- 
John  | 1980 | 1.82 | 
Smith  | 1987 | 2.02 | 

इसका मतलब है; प्रत्येक कॉलम "व्यक्तियों" की एक विशेष विशेषता का प्रतिनिधित्व करता है और जब आप कोई विशेष कॉलम चुनते हैं, तो आपको सभी लोगों की उस विशेष विशेषता मिलती है। इस तरह, एक स्तंभ एक "आयाम" होता है और सभी मानों में एक ही इकाई (डेटा प्रकार) होती है, सभी तिथियां होती हैं, सभी लंबाईएं होती हैं आदि।

वित्तीय मॉडलिंग में, हालांकि, डेटा को अन्य तरीकों से प्रस्तुत करना बहुत सुविधाजनक है। उदाहरण के लिए "मासिक कैश फ्लो" तालिका में एक विशिष्ट इस तरह दिखता है।

Item   | Jan | Feb | 
----------------------------- 
Sales  | $100 | $150 | 
Tax   | -$50 | -$15 | 

ध्यान दें कि एक स्प्रेडशीट में इस तरह का सारणीकरण डेटाबेस प्रारूपों पालन नहीं करता है, स्तंभ शीर्ष समय है, लेकिन स्तंभ में मान मौद्रिक मूल्य, संघर्ष कर रहे हैं, हम इस कॉलम के साथ गणना नहीं कर सकते।

हम इस तालिका धुरी है, यह अब हो जाता है

Date   | Sales | Tax | 
------------------------------ 
Jan   | $100 | -$50 | 
Feb   | $150 | -$15 | 

, स्तंभ आयाम (शीर्षक) और उन्हें अंदर डेटा संगत कर रहे हैं। दिनांक कॉलम में सभी तिथियां हैं, और अन्य के पास सभी $ आंकड़े हैं। हम एक कॉलम ले सकते हैं और इसके साथ वेक्टर ऑपरेशन कर सकते हैं।

यह एक समस्या है जो हलचल हल करती है।

+0

"प्रत्येक पंक्ति" व्यक्तियों "की एक विशेष विशेषता का प्रतिनिधित्व करती है और जब आप किसी विशेष पंक्ति का चयन करते हैं, तो आपको सभी लोगों की उस विशेष विशेषता मिलती है" - मुझे लगता है कि आपको वास्तव में "प्रत्येक कॉलम" और "कण स्तंभ" का अर्थ है ... I शब्द बदलने की स्वतंत्रता ली। अन्यथा, वास्तव में, एक बहुत अच्छा उदाहरण - धन्यवाद! –

संबंधित मुद्दे