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

एक से अधिक मान कॉलम के साथ पिवट / क्रॉसस्टैब

एक तरीका एक समग्र प्रकार का उपयोग करना होगा:

CREATE TYPE i2 AS (a int, b int);

या, तदर्थ उपयोग के लिए (सत्र की अवधि के लिए प्रकार पंजीकृत करता है):

CREATE TEMP TABLE i2 (a int, b int);

फिर क्रॉसस्टैब चलाएं जैसा कि आप जानते हैं और समग्र प्रकार को विघटित करें:

SELECT client_id
     , (a0).a AS a0_cur_val, (a0).b AS a0_fut_val
     , (a1).a AS a1_cur_val, (a1).b AS a1_fut_val
     , (a2).a AS a2_cur_val, (a2).b AS a2_fut_val
FROM   crosstab(
       'SELECT client_id, asset_type, (current_value, future_value)::i2
        FROM   foo
        ORDER  BY 1,2'

      ,'SELECT * FROM generate_series(0,2)'
   ) AS ct (client_id int, a0 i2, a1 i2, a2 i2);

सभी कोष्ठक आवश्यक हैं !

crosstab() . के लिए मूल बातें :




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

  2. रेल कॉलम प्रकार बदलते हैं और कॉलम मान अपडेट करते हैं

  3. पोस्टग्रेस्क्ल में RAISE NOTICE से फ़ाइल में लिखें

  4. Postgresql में अंडरस्कोर से कैसे बचें

  5. Postgres psql के लिए टाइमज़ोन कैसे सेट करें?