में पिवोटिंग कैसे करें मैं PostgreSQL में नया हूं।PostgreSQL
मान लीजिए मैं
colorname Hexa rgb rgbvalue
Violet #8B00FF r 139
Violet #8B00FF g 0
Violet #8B00FF b 255
Indigo #4B0082 r 75
Indigo #4B0082 g 0
Indigo #4B0082 b 130
Blue #0000FF r 0
Blue #0000FF g 0
Blue #0000FF b 255
नीचे के रूप में एक मेज है, तो मैं के रूप में
SELECT colorname,hexa,[r], [g], [b]
FROM
(SELECT colorname,hexa,rgb,rgbvalue
FROM tblPivot) AS TableToBePivoted
PIVOT
(
sum(rgbvalue)
FOR rgb IN ([r], [g], [b])
) AS PivotedTable;
एसक्यूएल सर्वर में एक धुरी करना मैं के रूप में
colorname hexa r g b
Blue #0000FF 0 0 255
Indigo #4B0082 75 0 130
Violet #8B00FF 139 0 255
आउटपुट प्राप्त करने के लिए कैसे PostgreSQL का उपयोग कर वही?
ERROR: function crosstab(unknown) does not exist
LINE 2: FROM crosstab
^
HINT: No function matches the given name and argument types. You might need to add explicit type casts.
********** Error **********
ERROR: function crosstab(unknown) does not exist**
वहाँ PostgreSQL में ऐसा करने से (किसी भी समारोह में बनाया गया ...) क्या की मानक अभ्यास है के किसी भी सुरुचिपूर्ण रास्ता नहीं है:
मेरे प्रयास
SELECT *
FROM crosstab
(
'SELECT
colorname
,hexa
,rgb
,rgbvalue
FROM tblPivot'
)AS ct(colorname text, hexa text, rgb text, rgbvalue int);
लेकिन geting त्रुटि है ऐसा करने से ?
लेकिन क्यों crosstab काम didnot ... उस में समर्थन नहीं करता वर्तमान संस्करण जिसका मैं उपयोग कर रहा हूं? –
'crosstab()' 'tablefunc' मॉड्यूल से संबंधित है। आपको 'CREATE EXTENSION' का उपयोग करके इसे सक्षम करना होगा। ने कहा कि; यह सुविधा जो महान पेशकश नहीं हो सकती है; postgresql जुड़ने को अनुकूलित करने में शानदार रूप से अच्छा है, और इस तरह का कोड अधिक डेटाबेस और अधिक डेवलपर्स के लिए अधिक पहचान योग्य होगा। – SingleNegationElimination
यदि आप क्रॉसस्टैब सामान का बहुत कुछ करते हैं, तो tablefunc contrib मॉड्यूल बहुत अच्छा हो सकता है। यदि आप उबंटू पर हैं, तो आप इसे करके एक डीबी में tablefunc फ़ंक्शन जोड़ सकते हैं: psql dbname -f /usr/share/postgresql/8.4/contrib/tablefunc.sql या कुछ समान। –