రిలేషనల్ పట్టికల రూపంలో అధిక మొత్తంలో డేటాను నిల్వ చేయండి. ఈ పట్టికలు ఎన్ని వరుసలు మరియు నిలువు వరుసలను కలిగి ఉంటాయి. కానీ, మీరు వరుస-స్థాయి డేటాను స్తంభ డేటాకు మార్చవలసి వస్తే? సరే, SQL పివోట్లోని ఈ వ్యాసంలో, మీరు SQL సర్వర్లోని నిలువు వరుసకు అడ్డు వరుసలను ఎలా మార్చవచ్చో నేను మీకు చూపిస్తాను.
ఈ వ్యాసంలో ఈ క్రింది విషయాలు కవర్ చేయబడతాయి:
SQL లో PIVOT అంటే ఏమిటి?
ఒకే కాలమ్ యొక్క ప్రత్యేక విలువలను బహుళ నిలువు వరుసలుగా మార్చడం ద్వారా పట్టిక విలువను తిప్పడానికి పివోట్ ఉపయోగించబడుతుంది. ఇది కాలమ్ విలువలకు అడ్డు వరుసలను తిప్పడానికి ఉపయోగించబడుతుంది మరియు మిగిలిన కాలమ్ విలువలలో అవసరమైనప్పుడు అగ్రిగేషన్లను అమలు చేస్తుంది.
మరోవైపు, UNPIVOT వ్యతిరేక కార్యకలాపాలను నిర్వహించడానికి ఉపయోగిస్తారు. కాబట్టి, ఇది ఒక నిర్దిష్ట పట్టిక యొక్క నిలువు వరుసలను కాలమ్ విలువలకు మార్చడానికి ఉపయోగించబడుతుంది.
ఈ వ్యాసంలో కదులుతూ, SQL పివోట్ యొక్క వాక్యనిర్మాణాన్ని అర్థం చేసుకుందాం.
సింటాక్స్:
నాన్ పివోటెడ్ కాలమ్ నేమ్, [మొదటి పివొటెడ్ కాలమ్ నేమ్] ఎఎస్ కాలమ్ నేమ్, [రెండవ పివొటెడ్ కాలమ్ నేమ్] ఎఎస్ కాలమ్ నేమ్, [థర్డ్ పివొటెడ్ కాలమ్ నేమ్] ఎ కాలమ్ నేమ్, ... [లాస్ట్ పివొటెడ్ కాలమ్ నేమ్] ఎఎస్ కాలమ్ నేమ్ ఫ్రమ్ (డేటాను ఉత్పత్తి చేసే సెలెక్ట్ ప్రశ్న) [అలియాస్ ప్రారంభ ప్రశ్న కోసం] PIVOT ([అగ్రిగేషన్ ఫంక్షన్] (కాలమ్ నేమ్) కోసం [కాలమ్ యొక్క విలువలు కాలమ్ హెడర్లుగా మారే కాలమ్ పేరు] IN ([మొదటి పివోటెడ్ కాలమ్ నేమ్], [రెండవ పివొటెడ్ కాలమ్ నేమ్], [మూడవ పివోటెడ్ కాలమ్ నేమ్] ... [చివరిది పైవట్ కాలమ్])) AS [పివట్ టేబుల్ కోసం అలియాస్]
ఇక్కడ,మీరు కూడా ఉపయోగించవచ్చు నిబంధన ప్రకారం ఆర్డర్ చేయండి విలువలను ఆరోహణ లేదా అవరోహణ క్రమంలో క్రమబద్ధీకరించడానికి. SQL మరియు దాని ప్రాథమిక వాక్యనిర్మాణంలో PIVOT అంటే ఏమిటో ఇప్పుడు మీకు తెలుసు, మనం ముందుకు సాగండి మరియు దానిని ఎలా ఉపయోగించాలో చూద్దాం.
ఉదాహరణలు
మీ మంచి అవగాహన కోసం, మీకు అన్ని ఉదాహరణలను వివరించడానికి నేను ఈ క్రింది పట్టికను పరిశీలిస్తాను.
సరఫరాదారు పట్టిక:
సరఫరాదారు ID | డేసోఫ్ తయారీ | ధర | కస్టమర్ ఐడి | కొనుగోలు ID |
ఒకటి | 12 | 1230 | పదకొండు | పి 1 |
2 | ఇరవై ఒకటి | 1543 | 22 | పి 2 |
3 | 32 | 2. 3. 4. 5 | పదకొండు | పి 3 |
4 | 14 | 8765 | 22 | పి 1 |
5 | 42 | 3452 | 33 | పి 3 |
6 | 31 | 5431 | 33 | పి 1 |
7 | 41 | 2342 | పదకొండు | పి 2 |
8 | 54 | 3654 | 22 | పి 2 |
9 | 33 | 1234 | పదకొండు | పి 3 |
10 | 56 | 6832 | 33 | పి 2 |
ప్రతి కస్టమర్ ఖర్చు చేసిన సగటు వ్యయాన్ని తిరిగి పొందడానికి ఒక సాధారణ ప్రశ్న వ్రాద్దాం.
తరగతి జావా యొక్క ఉదాహరణ
కస్టమర్ ఐడి, ఎవిజి (ఖర్చు) సప్లయర్స్ నుండి సగటు కాస్టోఫ్ కస్టమర్ గా ఎంచుకోండి కస్టమర్ ఐడి ద్వారా గ్రూప్
అవుట్పుట్:
కస్టమర్ ఐడి | AverageCostofCustomer |
పదకొండు | 1787.75 |
22 | 4654 |
33 | 5238.33 |
ఇప్పుడు, పై పట్టికను పైవట్ చేయాలనుకుంటున్నాము. ఇక్కడ, కస్టమర్ ఐడి కాలమ్ విలువలు కాలమ్ హెడర్స్ అవుతాయి.
- ఒక వరుస మరియు మూడు నిలువు వరుసలతో పివట్ పట్టికను సృష్టించండి 'సగటు కోస్టోఫ్ కస్టమర్' AS కాస్ట్_అకార్డింగ్_టో_కస్టమర్స్, [11], [22], [33] FROM (కస్టమర్ ఐడి, సరఫరాదారుల నుండి ఖర్చు) నుండి సోర్స్టేబుల్ పివోట్ (AVG (ఖర్చు) [11], [22], [33])) AS పివోట్ టేబుల్
అవుట్పుట్:
ఖర్చు_అకార్డింగ్_ కస్టమర్లు | పదకొండు | 22 | 33 |
AverageCostofCustomer | 1787.75 | 4654 | 5238.33 |
గమనిక: మీరు ఉపయోగించినప్పుడు మొత్తం విధులు PIVOT తో, అగ్రిగేషన్ను గణించేటప్పుడు శూన్య విలువలు పరిగణించబడవు.
బాగా, ఇది ఒక ప్రాథమిక ఉదాహరణ, కానీ పివోట్ నిబంధన ఎలా పని చేసిందో ఇప్పుడు అర్థం చేసుకుందాం.
పివోట్ నిబంధన యొక్క పని
మీరు పైన సూచించినట్లుగా, పివోట్ టేబుల్ను సృష్టించడానికి, మీరు ఈ క్రింది దశలను అనుసరించాలి:
- పివోటింగ్ కోసం నిలువు వరుసలను ఎంచుకోండి
- అప్పుడు, సోర్స్ టేబుల్ని ఎంచుకోండి.
- PIVOT ఆపరేటర్ను వర్తించండి, ఆపై మొత్తం విధులను ఉపయోగించండి.
- పైవట్ విలువలను పేర్కొనండి.
పివోటింగ్ కోసం నిలువు వరుసలను ఎంచుకోండి
ప్రారంభంలో, మా ఫలితాల్లో చేర్చవలసిన ఫీల్డ్లను మేము పేర్కొనాలి. మా ఉదాహరణలో, పివట్ పట్టికలోని సగటు కోస్టోఫ్ కస్టమర్ కాలమ్ను నేను పరిగణించాను. అప్పుడు మేము 11, 22 మరియు 33 కాలమ్ శీర్షికలతో మరో మూడు నిలువు వరుసలను సృష్టించాము. ఉదాహరణ-
'AverageCostofCustomer' AS Cost_According_To_Customers, [11], [22], [33] ఎంచుకోండి
మూల పట్టికను ఎంచుకోండి
తరువాత, మీరు పివట్ పట్టిక కోసం సోర్స్ డేటాను తిరిగి ఇచ్చే SELECT స్టేట్మెంట్ను పేర్కొనాలి. మా ఉదాహరణలో, మేము కస్టమర్ ఐడి మరియు ధరను సరఫరాదారుల పట్టిక నుండి తిరిగి ఇస్తున్నాము.
(కస్టమర్ ఐడిని ఎంచుకోండి, సరఫరాదారుల నుండి ఖర్చు) సోర్స్టేబుల్
PIVOT ఆపరేటర్ను వర్తించండి, ఆపై మొత్తం విధులను ఉపయోగించండి
తరువాత, మీరు పైవట్ పట్టికను సృష్టించేటప్పుడు ఉపయోగించాల్సిన మొత్తం ఫంక్షన్ను పేర్కొనాలి. మా ఉదాహరణలో, సగటు ఖర్చును లెక్కించడానికి నేను AVG ఫంక్షన్ను ఉపయోగించాను.
పివోట్ (AVG (ఖర్చు)
పైవట్ విలువలను పేర్కొనండి
చివరగా, ఫలిత పైవట్ పట్టికలో చేర్చవలసిన విలువలను మీరు పేర్కొనాలి. ఈ విలువలు పైవట్ పట్టికలోని కాలమ్ శీర్షికలుగా ఉపయోగించబడతాయి.
కస్టమర్ ఐడి కోసం ([11], [22], [33]) పివోట్టేబుల్
PIVOT ఆపరేటర్లు ఎలా పని చేస్తారు. SQL PIVOT లోని ఈ వ్యాసంలో కదులుతున్నప్పుడు, ఇది SQL UNPIVOT నుండి ఎంత భిన్నంగా ఉందో అర్థం చేసుకుందాం.
SQL UNPIVOT
PIVOT యొక్క వ్యతిరేక ఆపరేషన్ చేయడానికి SQL UNPIVOT ఆపరేటర్ ఉపయోగించబడుతుంది. కాలమ్ డేటాను వరుస-స్థాయి డేటాగా తిప్పడానికి ఇది ఉపయోగించబడుతుంది. UNPIVOT యొక్క వాక్యనిర్మాణం PIVOT మాదిరిగానే ఉంటుంది. ఒకే తేడా ఏమిటంటే మీరు ఉపయోగించాలి ' UNPIVOT ” .
ఉదాహరణ:
సరఫరాదారు ID, AAA, BBB మరియు CCC నిలువు వరుసలతో పట్టికను సృష్టిద్దాం. అలాగే, కొన్ని విలువలను చొప్పించండి.
నమూనా నమూనాను సృష్టించండి (సరఫరాదారు ఐడి, AAA పూర్ణాంకానికి, BBB పూర్ణాంకానికి, CCC పూర్ణాంకానికి వెళ్ళండి) నమూనా విలువలకు (1,3,5,6) చొప్పించండి నమూనా విలువల్లోకి చొప్పించండి (2,9,2,8) నమూనా విలువల్లోకి చొప్పించండి (3, 8,1,7) జిఓ
అవుట్పుట్:
సరఫరాదారు ID | AAA | బిబిబి | సి.సి.సి. |
ఒకటి | 3 | 5 | 6 |
2 | 9 | 2 | 8 |
3 | 8 | ఒకటి | 7 |
ఇప్పుడు, మనం పట్టికను తీసివేయాలనుకుంటున్నాము. అలా చేయడానికి, మీరు ఈ క్రింది కోడ్ను చూడవచ్చు:
సరఫరాదారు ఐడి, కస్టమర్లు, ఉత్పత్తులను ఎంచుకోండి (మాదిరి నుండి సరఫరాదారు, ఎఎఎ, బిబిబి, సిసిసిని ఎంచుకోండి) పి యున్పివోట్ (వినియోగదారుల కోసం ఉత్పత్తులు (AAA, BBB, CCC)) ఉదాహరణగా GO
సరఫరాదారు ID | వినియోగదారులు | ఉత్పత్తులు |
ఒకటి | AAA | 3 |
ఒకటి | బిబిబి | 5 |
ఒకటి r యంత్ర అభ్యాసం ఉదాహరణ ద్వారా | సి.సి.సి. | 6 |
2 | AAA | 9 |
2 | బిబిబి | 2 |
2 | సి.సి.సి. | 8 |
3 | AAA | 8 |
3 | బిబిబి | ఒకటి |
3 మ్యాప్ సైడ్ అందులో నివశించే తేనెటీగలు చేరండి | సి.సి.సి. | 7 |
మీరు SQL PIVOT మరియు UNPIVOT ను ఎలా ఉపయోగించవచ్చు. దీనితో, మేము ఈ వ్యాసాన్ని ముగించాము. SQL ను ఎలా ఉపయోగించాలో మీరు అర్థం చేసుకున్నారని నేను నమ్ముతున్నాను. మీరు మరింత తెలుసుకోవాలనుకుంటే MySQL మరియు ఈ ఓపెన్-సోర్స్ రిలేషనల్ డేటాబేస్ గురించి తెలుసుకోండి, ఆపై మా చూడండి ఇది బోధకుడు నేతృత్వంలోని ప్రత్యక్ష శిక్షణ మరియు నిజ జీవిత ప్రాజెక్ట్ అనుభవంతో వస్తుంది. ఈ శిక్షణ మీకు MySQL లోతుగా అర్థం చేసుకోవడానికి సహాయపడుతుంది మరియు ఈ అంశంపై పాండిత్యం సాధించడంలో మీకు సహాయపడుతుంది.
మాకు ప్రశ్న ఉందా? దయచేసి SQL పివట్లోని ఈ వ్యాసం యొక్క వ్యాఖ్యల విభాగంలో పేర్కొనండి మరియు నేను మీ వద్దకు తిరిగి వస్తాను.