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

मैं 3 तालिकाओं में कैसे शामिल हो सकता हूं और डुप्लिकेट पंक्तियों के बिना 2 तालिकाओं से फ़ील्ड के सही योग की गणना कैसे कर सकता हूं?

अगर मैं तर्क को सही ढंग से समझता हूं, तो समस्या दो जुड़ने के कारण कार्टेशियन उत्पाद है। आपकी क्वेरी का पालन करना थोड़ा कठिन है, लेकिन मुझे लगता है कि सहसंबंधित उपश्रेणियों के साथ इरादे को बेहतर ढंग से संभाला जाता है:

select k.*,
       (select sum(cost)
        from ad_group_keyword_network n
        where n.event_date >= '2015-12-27' and
              n.ad_group_keyword_id = 1210802 and
              k.id = n.ad_group_keyword_id
       ) as cost,
       (select sum(clicks)
        from keyword_click c
        where (c.date is null or c.date >= '2015-12-27') and
              k.keyword_id = c.keyword_id               
       ) as clicks
from ad_group_keyword k
where k.status = 2 ;

यहां संबंधित SQL Fiddle है।

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

उप-चयन group by . से तेज़ होना चाहिए असंगठित डेटा पर। हालांकि, आपको सही अनुक्रमणिका की आवश्यकता है:ad_group_keyword_network(ad_group_keyword_id, ad_group_keyword_id, event_date, cost) और keyword_click(keyword_id, date, clicks)



  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. सभी स्तंभों के लिए खोज फ़िल्टर लागू करें

  3. psql में पेजर को अनुकूलित करें

  4. मैं सीधे jsonb_array_elements पर क्वेरी क्यों नहीं कर सकता?

  5. PostgreSQL ट्रिगर निर्माण मुद्दे