SELECT student_id, section, count(*) as total
FROM raw_data r
WHERE response = 1
GROUP BY student_id, section
परीक्षण पर 4 अनुभाग हैं, प्रत्येक में अलग-अलग प्रश्न हैं। मैं जानना चाहता हूं, प्रत्येक छात्र के लिए, और प्रत्येक खंड के लिए, उन्होंने सही तरीके से कितने प्रश्नों का उत्तर दिया (प्रतिक्रिया = 1)।mysql SELECT COUNT (*) ... ग्रुप बाय ... पंक्तियों को वापस नहीं कर रहा है जहां गिनती शून्य है
हालांकि, इस प्रश्न के साथ, यदि किसी छात्र को किसी दिए गए अनुभाग में कोई प्रश्न नहीं मिलता है, तो वह पंक्ति मेरे परिणाम सेट से पूरी तरह गायब हो जाएगी। मैं कैसे सुनिश्चित कर सकता हूं कि प्रत्येक छात्र के लिए, 4 पंक्तियां हमेशा वापस आती हैं, भले ही पंक्ति के लिए "कुल" 0 है?
यहाँ मेरी परिणाम सेट की तरह दिखता है:
student_id section total
1 DAP--29 3
1 MEA--16 2
1 NNR--13 1 --> missing the 4th section for student #1
2 DAP--29 1
2 MEA--16 4
2 NNR--13 2 --> missing the 4th section for student #2
3 DAP--29 2
3 MEA--16 3
3 NNR--13 3 --> missing the 4th section for student #3
4 DAP--29 5
4 DAP--30 1
4 MEA--16 1
4 NNR--13 2 --> here, all 4 sections show up because student 4 got at least one question right in each section
किसी भी जानकारी के लिए धन्यवाद!
अद्यतन: मैं
SELECT student_id, section, if(count(*) is null, 0, count(*)) as total
की कोशिश की और कहा कि सभी पर परिणाम नहीं बदला। अन्य विचार?
अद्यतन 2: मैं इसे नीचे प्रतिक्रिया के लिए धन्यवाद काम कर रहा है:
SELECT student_id, section, SUM(CASE WHEN response = '1' THEN 1 ELSE 0 END) AS total
FROM raw_data r
WHERE response = 1
GROUP BY student_id, section
आपको यह दिखाने की ज़रूरत है कि इनपुट कैसा दिखता है। –