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

Postgresql का उपयोग करके एकल आईडी के लिए पंक्ति द्वारा पंक्ति में सरणी मान दिखाते हैं

आप अपने डेटा को समूहीकृत करना चाहते हैं, इसलिए देखने की जगह [एग्रीगेट फंक्शन लिस्ट] (https://www.postgresql.org/docs/current/functions-aggregate.html ), इस मामले में यह string_agg ( value text, delimiter text ) → text है

आप नाम और विभागों के डेटा को जोड़ना चाहते हैं और आप चाहते हैं कि नाम और विभाग अलग-अलग पंक्तियों में हों जैसा कि उदाहरण में दिखाया गया है। उसके लिए E'\n' सीमांकक का उपयोग किया जाना चाहिए:

SELECT
  id,
  string_agg(name, E'\n') as names,
  string_agg(dept, E'\n') as depts
FROM 
  data
GROUP BY
  id
ORDER BY
  id;

उत्तर आपको कैसे करें . दिखाता है और टिप्पणियां समझाती हैं क्यों नहीं . चुनाव अब आपका है।

1 संपादित करें

यदि आप रिकॉर्ड की संख्या को संरक्षित करना पसंद करते हैं और समूह की प्राथमिकी पंक्ति के साथ आईडी प्रदर्शित करना पसंद करते हैं, तो आपको विंडो फ़ंक्शन को देखना चाहिए। विशेष रूप से LAG

SELECT
  CASE 
    WHEN id IS DISTINCT FROM LAG(id) OVER(order by id) THEN id 
    ELSE null 
  END as id,
  name,
  dept
FROM 
  data
order by
  data.id;

एसक्यूएल वर्तमान आईडी की तुलना पिछली पंक्ति में से एक से करता है और इसे या शून्य मान आउटपुट करता है।




  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. मैं psycopg और gevent का उपयोग करके कनेक्शन कैसे पूल कर सकता हूं?

  3. वैग्रंट/शेफ-सोलो के साथ पोस्टग्रेस्क्ल पासवर्ड सेट करना

  4. समूह द्वारा और कॉलम जोड़ें

  5. PostgreSQL unescape JSON स्ट्रिंग