PostgreSQL క్రాస్టాబ్ మాడ్యూల్తో పని చేస్తోంది
మీ డేటా ఎలా ప్రాతినిధ్యం వహించాలని మీరు కోరుకుంటున్నారో పేర్కొనడానికి గదిని కలిగి ఉండటం చాలా సులభం. PostgreSQLతో, డేటాను పట్టిక రూపంలో ఉంచడం డిఫాల్ట్ మార్గం అయినప్పటికీ, క్రాస్ట్యాబ్ మాడ్యూల్ మీకు మరొక ఎంపికను ఇస్తుంది. మెరుగైన ప్రెజెంటేషన్ కోసం మీరు PostgreSQL పట్టిక నుండి 'ఎంచుకోండి' నిలువు వరుసలను ఉపయోగించి పివోట్ పట్టికలను సృష్టించవచ్చు.
అద్భుతమైన ఫీచర్ PostgreSQL వెర్షన్ 8.3 కోసం పొడిగింపుగా వస్తుంది. 'tablefunc' పొడిగింపు క్రాస్ట్యాబ్ ఫంక్షన్ను అందిస్తుంది, మీ ఫలితం సెట్గా పివోట్ టేబుల్లను కలిగి ఉండటం సాధ్యపడుతుంది. ఒక ఉదాహరణ ఇద్దాం.
మొదట, మేము కింది ఆదేశాన్ని ఉపయోగించి మూడు నిలువు వరుసలతో “ఫలితాలు” పట్టికను సృష్టిస్తాము:
సృష్టించిన పట్టిక ఖాళీగా ఉంది. అందువలన, ముందుకు సాగండి మరియు దానికి విలువలను జోడించడానికి INSERT ప్రశ్నను ఉపయోగించండి. ఈ సందర్భంలో, కింది వాటిలో చూపిన విధంగా మేము కొన్ని ఎంట్రీలను చొప్పించాము:
మేము 'ఎంచుకోండి' ప్రకటనను అమలు చేస్తే, మేము ఈ క్రింది ఫలితాలను పొందుతాము. రికార్డులను తిరిగి పొందే ఈ డిఫాల్ట్ మార్గం వాటిని పట్టిక రూపంలో ఎలా ప్రదర్శిస్తుందో గమనించండి. నిలువు వరుసలు హెడర్లుగా ఉపయోగించబడతాయి మరియు వాటి సంబంధిత విలువలు అడ్డు వరుసలలో కనిపిస్తాయి:
మునుపటి విధానం చాలా సందర్భాలలో పనిచేసినప్పటికీ, అదే రికార్డులను తిరిగి పొందడానికి మరొక ఎంపిక ఉంది. ఈ సందర్భంలో, మేము పివోట్ పట్టికను సృష్టించాలనుకుంటున్నాము. కాబట్టి, మేము PostgreSQL వెర్షన్ 8.3+తో వచ్చే “tablefunc” పొడిగింపును ఉపయోగిస్తాము.
కాబట్టి, మనం ప్రశ్నలో కాల్ చేసినప్పుడు దాన్ని ఎనేబుల్ చేయడానికి “tablefunc” ఎక్స్టెన్షన్ని క్రియేట్ చేద్దాం. కింది ఆదేశాన్ని అమలు చేయండి:
మీరు మునుపటి ఇమేజ్లో ఉన్నట్లుగా అవుట్పుట్ను పొందిన తర్వాత పొడిగింపు విజయవంతంగా ప్రారంభించబడిందని మీకు తెలుస్తుంది.
మా క్రాస్ట్యాబ్ ఫంక్షన్ కోసం, మొదటి కాలమ్ ఫ్యాకల్టీగా ఉండేలా చేద్దాం. దాని క్రింద మన పట్టికలో ఉన్న వివిధ ఫ్యాకల్టీలు ఉన్నాయి. ఫ్యాకల్టీ కాలమ్ పక్కన, మా టేబుల్లోని వర్గం కాలమ్లో విభిన్న విలువలను సూచించే ఇతర నిలువు వరుసలు ఉన్నాయి. చివరగా, ప్రతి వర్గానికి, వివిధ వర్గాలను సాధించిన విద్యార్థుల సంఖ్యను మేము కలిగి ఉన్నాము.
అటువంటి పివోట్ పట్టికను సాధించడానికి, కింది వాక్యనిర్మాణాన్ని ఉపయోగించండి:
ఎంచుకోండి * క్రాస్స్టాబ్ నుండి ( 'కాలమ్1ని ఎంచుకోండి , కాలమ్2 , పట్టిక_పేరు నుండి నిలువు వరుస 3 ప్రమాణాల ప్రకారం ఆర్డర్ చేయండి’ )కొత్త_పేరు ( కాలమ్1 డేటా_రకం , కాలమ్2 డేటా_రకం , కాలమ్_n డేటా_రకం ) ;
మేము సృష్టించిన ఉదాహరణ పట్టికను ఉపయోగించి, మా ఆదేశం క్రింది విధంగా కనిపిస్తుంది:
మేము ఫలితాలను చూసే ముందు, క్రాస్టాబ్ మాడ్యూల్ కమాండ్ ఎలా పనిచేస్తుందనే దానిపై విచ్ఛిన్నం చేద్దాం. ముందుగా, SELECT స్టేట్మెంట్ మూడు నిలువు వరుసలను అందిస్తుంది. మొదటి నిలువు వరుస ఐడెంటిఫైయర్గా పరిగణించబడుతుంది. మా విషయంలో, ఇది 'అధ్యాపకులు' కాలమ్. 'వర్గం' నిలువు వరుస అయిన రెండవ నిలువు వరుస, పివోట్ పట్టిక కోసం వర్గాలను సూచిస్తుంది. చివరగా, మూడవ నిలువు వరుస వర్గాల విలువలను కలిగి ఉంటుంది. మా విషయంలో, ఇది ప్రతి వర్గంలోని విద్యార్థుల సంఖ్య.
ఆ అవగాహన కలిగి, మనం “Enter” కీని నొక్కిన తర్వాత, ఈ క్రింది విధంగా పివోట్ పట్టికను పొందుతాము:
తిరిగి వచ్చిన పివోట్ పట్టిక ఆధారంగా, ఇది 2-D శ్రేణి వలె పని చేస్తుందని మనం చూడవచ్చు, ఇక్కడ SELECT స్టేట్మెంట్లోని మొదటి నిలువు వరుస మొదటి శ్రేణి మరియు రెండవ నిలువు వరుస పరిమాణంలో రెండవ శ్రేణి. మూడవ నిలువు వరుస రెండవ శ్రేణి మూలకాల విలువలను కలిగి ఉంటుంది.
ముగింపు
పట్టిక విలువలను పివోట్ పట్టికగా సూచించడానికి PostgreSQL క్రాస్టాబ్ మంచిది. క్రాస్ట్యాబ్ మాడ్యూల్ని ఉపయోగించడానికి మీరు మీ SELECT స్టేట్మెంట్లో తప్పనిసరిగా మూడు నిలువు వరుసలను అందించాలి మరియు ఈ పోస్ట్ దీన్ని ఎలా ఉపయోగించాలనే దానిపై ఒక ఆచరణాత్మక ఉదాహరణను భాగస్వామ్యం చేసింది. అంతేకాకుండా, 2-D శ్రేణి వలె అదే లాజిక్ను ఉపయోగించే పివోట్ పట్టికను రూపొందించడంలో క్రాస్ట్యాబ్ మాడ్యూల్ ఎలా పనిచేస్తుందో మేము వివరించాము.