crosstab()
का उपयोग करें अतिरिक्त मॉड्यूल टेबलफंक से।
विशिष्ट कठिनाई यहाँ यह है कि "पंक्ति नाम" में दो कॉलम होते हैं। मैं क्वेरी के उद्देश्य के लिए संयोजित करता हूं और अंत में संयोजित कॉलम प्रदर्शित नहीं करता हूं।
fn
मानते हुए और ln
हैं NOT NULL
. परीक्षण नहीं किया गया:
SELECT fn, ln, cat1, cat2
FROM crosstab(
'SELECT fn || ln AS row_name, fn, ln, file_type, attribute
FROM t
ORDER BY fn, ln, file_type'
,$$VALUES ('cat1'::text), ('cat2')$$)
AS t (row_name text, fn text, ln int, cat1 text, cat2 text);
एक अन्य विकल्प dense_rank()
जैसे विंडो फ़ंक्शन के साथ एक सरोगेट "पंक्ति नाम" जोड़ना होगा और परिभाषित दो कॉलम को "अतिरिक्त कॉलम" के रूप में देखें। उदाहरण:
- एकाधिक "पंक्ति नाम" कॉलम के साथ पोस्टग्रेस्क्ल क्रॉसस्टैब क्वेरी
मूल बातें:
- PostgreSQL क्रॉसस्टैब क्वेरी