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

MySQL:उपश्रेणियों में योग मान

कुछ सुझाव:

  • seasons पर शामिल हों एक बार। एक जुड़ाव के कारण बाईं तालिका से पंक्तियों की नकल हो जाती है, इसलिए उन्हें sum द्वारा दो बार सम्‍मिलित किया जा सकता है सकल। जब संदेह हो, तो group by . के बिना क्वेरी चलाएँ उदाहरण के लिए स्कूल।
  • आपको सबक्वेरी को बाहरी क्वेरी से जोड़ना होगा जैसे inner_schools.id = outer_schools.id
  • लेकिन जहां तक ​​मैं देख सकता हूं, आपको सबक्वायरी की बिल्कुल भी आवश्यकता नहीं है

उदाहरण के लिए:

SELECT  schools.*
,       sum(cashflows.amount) total_branding_cashflow
FROM    schools
JOIN    seasons
ON      seasons.school_id = schools.id 
        and seasons.year = 2010
JOIN    cashflows
ON      cashflows.season_id = seasons.id 
        and cashflow_group_id = 12
GROUP BY 
        schools.id 
HAVING  total_branding_cashflow BETWEEN 50000000 AND 100000000

कई श्रेणियों के लिए, आप एक केस का उपयोग कर सकते हैं:

SELECT  schools.*
,       sum(case when cashflow_group_id = 1 then cashflows.amount end) total1
,       sum(case when cashflow_group_id = 12 then cashflows.amount end) total12
FROM    schools
JOIN    seasons
ON      seasons.school_id = schools.id 
        and seasons.year = 2010
JOIN    cashflows
ON      cashflows.season_id = seasons.id 
GROUP BY 
        schools.id 



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MYSQL auto_increment_increment

  2. MySQL और PHP के लिए CRUD

  3. Mysql में innodb को कैसे निष्क्रिय करें?

  4. एक MySQL क्वेरी कैसे लिखें जो उस पंक्ति से संबंधित कोई आइटम किसी अन्य तालिका में मौजूद है या नहीं, इसके लिए झंडे वाले एक अस्थायी कॉलम देता है

  5. उपयोगकर्ता खाता प्रबंधन, भूमिकाएं, अनुमतियां, प्रमाणीकरण PHP और MySQL - भाग 6