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

PostgreSQL क्रॉसस्टैब/पिवट समस्याएं

टेस्ट केस (नमूना डेटा प्रदान करने का पसंदीदा तरीका):

CREATE TEMP TABLE prefs (pref_id int, pref_name text, pref_value text);

INSERT INTO prefs VALUES 
 (1, 'PagerNumber' , '2125551234')
,(2, 'PagerCarrier', '@att.com')
,(3, 'PagerCarrier', '@something.com');

प्रश्न:

SELECT *
FROM   crosstab(
       'SELECT pref_id, pref_name, pref_value
        FROM   prefs
        ORDER  BY 1, 2',

       $$VALUES ('PagerNumber'::text), ('PagerCarrier')$$
       )
AS x (section text, pager_number bigint, pager_carrier text);

आपके प्रश्न में दर्शाए गए परिणाम को ठीक से लौटाता है। अगर एक PagerNumber मान्य bigint . के अलावा कुछ और हो सकता है नंबर, text का उपयोग करें इसके बजाय।

आप अपने प्रश्न में जिस उत्तर का उल्लेख कर रहे हैं वह पुराना था और शुरू करने के लिए कभी भी सही नहीं था। मैंने एक उचित उत्तर जोड़ा जिसमें स्पष्टीकरण और लिंक शामिल हैं।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PostgreSQL में डेटा कैसे डालें और हटाएं

  2. PostgreSQL को psycopg2 से कनेक्ट नहीं कर सकता

  3. मान त्रुटि Psycopg2 का उपयोग कर पोस्टग्रेज तालिका में डेटा आयात करते समय

  4. मैं पिछले गैर-शून्य मान को कुशलतापूर्वक कैसे चुनूं?

  5. पिछले DELETE से प्रभावित पंक्तियों की संख्या वाले वेरिएबल? (एक समारोह में)