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

दो असंबंधित तालिकाओं में एक एसयूएम कैसे करें?

SELECT (SELECT SUM(table1.col1) FROM table1) AS sum_1,
       (SELECT SUM(table2.col1) FROM table2) AS sum_2;

आप इसे इस प्रकार भी लिख सकते हैं:

SELECT t1.sum_c1, t1.sum_c2, t2.sum_t2_c1
FROM
(
     SELECT SUM(col1) sum_c1,
            SUM(col2) sum_c2
 FROM table1
) t1
FULL OUTER JOIN
(
     SELECT SUM(col1) sum_t2_c1
     FROM table2
) t2 ON 1=1;

FULL JOIN का उपयोग ड्यूड कंडीशन के साथ किया जाता है ताकि कोई भी सबक्वेरी कोई परिणाम न दे (खाली) और बड़ी क्वेरी का कोई परिणाम न हो।

मुझे नहीं लगता कि आपके द्वारा लिखी गई क्वेरी ने आपके द्वारा प्राप्त किए जाने वाले परिणाम का उत्पादन किया होगा, क्योंकि यह तालिका 1 और तालिका 2 के बीच क्रॉस जॉइन कर रहा है, जो प्रत्येक एसयूएम को दूसरी तालिका में पंक्तियों की गिनती से बढ़ा देगा। ध्यान दें कि अगर दोनों में से कोई भी टेबल1/टेबल2 खाली है, तो क्रॉस जॉइन के कारण X पंक्तियाँ 0 पंक्तियों से एक खाली परिणाम लौटाएगी।

इसे देखें SQL Fiddle और परिणामों की तुलना करें।



  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. PostGIS का उपयोग करके बहुभुज डेटा को लाइन सेगमेंट में कैसे बदलें

  3. धीमी पोस्टग्रेज 9.3 प्रश्न

  4. पोस्टग्रेज - लापता डेटा के लिए 0 गिनती के साथ पंक्तियों को कैसे वापस करें?

  5. सम्मिलित स्क्रिप्ट बनाने के लिए SQL स्क्रिप्ट