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

MySQL योग, समूह द्वारा गिनें और शामिल हों

आपका पहला प्रयास वास्तव में करीब था। लेकिन प्रत्येक post_id insights . में मैचों की संख्या से गुणा किया जा रहा था , इसलिए आपको DISTINCT . का उपयोग करने की आवश्यकता है :

select type_name, count(distinct p.post_id), sum(likes), sum(comments)
from types t
left join posts p on t.type_id = p.post_type
left join insights i on p.post_id = i.post_id
group by type_name;

वैकल्पिक रूप से, आप एक सबक्वेरी के साथ समूह बना सकते हैं जो एक ही पोस्ट के लिए सभी अंतर्दृष्टि को जोड़ती है:

select type_name, count(*), sum(likes), sum(comments)
from types t
left join posts p on t.type_id = p.post_type
left join (select post_id, sum(likes) likes, sum(comments) comments
           from insights
           group by post_id) i on p.post_id = i.post_id
group by type_name;

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. घातक त्रुटि:बूलियन पर किसी सदस्य फ़ंक्शन bind_param () पर कॉल करें

  2. mySQL क्वेरी रिसोर्स आईडी #5 लौटा रही है

  3. RAM पर विचार करते हुए url या हैशिंग पर अनुक्रमणिका

  4. पायथन का उपयोग करके JSON को MySQL में सम्मिलित करना

  5. तालिका 'performance_schema.session_variables' मौजूद नहीं है