PostgreSQL
 sql >> डेटाबेस >  >> RDS >> PostgreSQL

क्रॉसस्टैब 2 (या अधिक) पंक्ति नामों के साथ

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 क्रॉसस्टैब क्वेरी


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. पोस्टग्रेज में कोई ईमेल मान्य है या नहीं, यह जांचने के लिए मैं एक बाधा कैसे बना सकता हूं?

  2. कॉपी कैसे काम करती है और यह INSERT से इतनी तेज क्यों है?

  3. एक तालिका के SQL अद्यतन फ़ील्ड दूसरे के फ़ील्ड से

  4. पोस्टग्रेस्क्ल विदेशी कुंजी सिंटैक्स

  5. क्वेरी में सम्मिलित JSON(B) कॉलम को मर्ज करना