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

जोड़ीदार सरणी योग कुल कार्य?

सामान्य समाधान किसी भी संख्या में तत्वों के साथ किसी भी संख्या में सरणी के लिए। व्यक्तिगत तत्व या संपूर्ण सरणी भी NULL हो सकती है:

9.4+ में आसान WITH ORDINALITY का इस्तेमाल करके

SELECT ARRAY (
   SELECT sum(elem)
   FROM  tbl t
       , unnest(t.arr) WITH ORDINALITY x(elem, rn)
   GROUP BY rn
   ORDER BY rn
   );

देखें:

9.3+ पोस्ट करें

यह एक निहित LATERAL JOIN का उपयोग करता है

SELECT ARRAY (
   SELECT sum(arr[rn])
   FROM   tbl t
        , generate_subscripts(t.arr, 1) AS rn
   GROUP  BY rn
   ORDER  BY rn
   );

देखें:

9.1 पोस्ट करें

SELECT ARRAY (
   SELECT sum(arr[rn])
   FROM  (
      SELECT arr, generate_subscripts(arr, 1) AS rn
      FROM   tbl t
      ) sub
   GROUP  BY rn
   ORDER  BY rn
   );

बाद के संस्करणों में भी यही काम करता है, लेकिन सेट-रिटर्निंग फ़ंक्शन SELECT . में काम करता है सूची मानक SQL नहीं हैं और कुछ लोगों द्वारा इसे पसंद किया गया था। हालांकि पोस्टग्रेज 10 के बाद से ठीक होना चाहिए। देखें:

db<>fiddle यहां
पुराना sqlfiddle

संबंधित:



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. JPA में अपवाद PostgreSQL के लिए बीज फ़ाइल का उपयोग करते समय

  2. Postgresql में SQL सर्वर से 'सामान' और 'xml पथ के लिए ('')'

  3. रेल में PostqreSQL:मैं सर्वर को स्थानीय रूप से कैसे चलाऊं और यूनिक्स डोमेन सॉकेट पर कनेक्शन स्वीकार करूं?

  4. पोस्टग्रेज में IF कंडीशन के आधार पर टेबल कैसे छोड़ें?

  5. यदि इसमें सक्रिय कनेक्शन हैं तो PostgreSQL डेटाबेस को कैसे छोड़ें?