2013-08-14 8 views
5

मेरी मेजअंक का योग और समूहीकरण

संदर्भ खोजें: http://www.sqlfiddle.com/#!2/6be93/1

enter image description here

यहाँ मैं एक स्कूल की कुल बिंदु मिल करना चाहते हैं। मैं निम्नलिखित कोड का उपयोग कर रहा हूँ।

SELECT School, SUM(GroupPoint) AS TotalC1, SUM(C2Points) AS TotalC2, 
    SUM(C3Points) AS TotalC3, SUM(GroupPoint + C2Points + C3Points) AS TotalAll 
    FROM students GROUP BY School ORDER BY TotalAll DESC LIMIT 6 

संदर्भ: http://www.sqlfiddle.com/#!2/25ed3/2

मेरी समस्या, आईडी 1,2,3 एक समूह प्रतियोगिता के विजेताओं कर रहे हैं। तो वे व्यक्तिगत रूप से 5 अंक प्राप्त करते हैं। लेकिन उस प्रतियोगिता के लिए, स्कूल को केवल 5 अंक नहीं मिलेगा 15. एक समूह को एक ही शतरंज द्वारा पहचाना जा सकता है।

तो मेरा अंतिम उत्पादन

SCHOOL TOTALC1 TOTALC2 TOTALC3 TOTALALL 
School2 13  49  3  65  
School1 5  4  25  34 

यह आभारी अगर किसी को भी मेरी मदद कर सकता है हो सकता है,

उत्तर

2

बेशक लग रहा है, तो आप कुछ अनुकूलन कर सकते हैं। लेकिन यह काम करता है!

SELECT two.TOTALC1, one.TotalC2, one.TotalC3, one.TotalOne + two.TOTALC1 as TotalAll from 
(select School, 
    SUM(C2Points) AS TotalC2, 
    SUM(C3Points) AS TotalC3, 
    SUM(C2Points + C3Points) AS TotalOne 
FROM students GROUP BY School 
ORDER BY TotalOne DESC) one 
left join (select school, sum(ma) as TOTALC1 from (select school, chess, max(grouppoint) as ma from students group by school, chess) as b group by school) two 
on one.school = two.school 
0
SELECT School, SUM(GroupPoint) AS TotalC1, SUM(C2Points) AS TotalC2, 
    SUM(C3Points) AS TotalC3, SUM(GroupPoint + C2Points + C3Points) AS TotalAll 
    FROM students GROUP BY Chess ORDER BY TotalAll DESC LIMIT 6 
+0

इस कोड को अपने दोस्त के काम नहीं कर रहा कोशिश करो। वैसे भी आपके प्रयास के लिए धन्यवाद। – user2594154

2

इस

SELECT 
    School, 
    sum(GroupPoint), 
    sum(TotalC2), 
    sum(TotalC3), 
    sum(GroupPoint) + sum(TotalC2) + sum(TotalC3) as total 
FROM (
    SELECT 
    School, 
    MAX( GroupPoint) AS GroupPoint, 
    SUM( C2Points) AS TotalC2, 
    SUM( C3Points) AS TotalC3 
    FROM 
    students 
    GROUP BY 
    School, 
    Chess 
) subquery 
GROUP BY 
    School 

आउटपुट

| SCHOOL | SUM(GROUPPOINT) | SUM(TOTALC2) | SUM(TOTALC3) | TOTAL | 
------------------------------------------------------------------- 
| School1 |    5 |   4 |   25 | 34 | 
| School2 |    13 |   49 |   3 | 65 | 
संबंधित मुद्दे