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

सभी मानों को एक ही समूह में नहीं जोड़ना

पोस्टग्रेस 11 . में या बाद में, विंडो का उपयोग करें समारोह एक कस्टम फ्रेम और एक frame_exclusion . के साथ :

SELECT *, array_combine(values) OVER (ROWS BETWEEN UNBOUNDED PRECEDING
                                           AND UNBOUNDED FOLLOWING
                                           EXCLUDE CURRENT ROW) AS agg_values
FROM   tbl;

अगर name UNIQUE नहीं है , और जब से आपने पूछा:

SELECT *, array_combine(values) OVER (ORDER BY name
                                      ROWS BETWEEN UNBOUNDED PRECEDING
                                           AND UNBOUNDED FOLLOWING
                                           EXCLUDE GROUP) AS agg_values
FROM   tbl;

db<>fiddle यहां

पहला (भी) पंक्तियों के मनमाने क्रम के साथ काम करता है, केवल वर्तमान को छोड़कर। दूसरे को ORDER BY की आवश्यकता है यह स्थापित करने के लिए कि कौन सी पंक्तियाँ एक ही समूह में हैं।

मैनुअल:

बोल्ड जोर मेरा।

यह कस्टम समुच्चय फ़ंक्शन का उपयोग करता है array_combine(anyarray) a_horse द्वारा उपलब्ध कराया गया .
या यहां:



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. pgadmin4 क्वेरी टूल हमेशा वापस आता है कनेक्टेड नहीं

  2. PostgreSQL में दो तिथियों के बीच परिणाम प्राप्त करना

  3. Django AutoField प्रारंभ मान को संशोधित करें

  4. डेटाबेस में अंतिम एन पंक्तियों को क्रम में प्राप्त करें?

  5. plpgsql के साथ फ़ंक्शन के अंदर वर्तमान फ़ंक्शन का नाम प्राप्त करना