SELECT up.device_id,
        up.university,
        COUNT( question_id) AS question_cnt,
        SUM(IF(result = "right", 1, 0)) AS right_question_cnt
FROM user_profile up
LEFT JOIN question_practice_detail qpd
    ON qpd.device_id = up.device_id AND MONTH(qpd.date)=8
WHERE up.university = "复旦大学"
GROUP BY up.device_id

COUNT( question_id)不考虑空值,所以对于空值的计数是0,不能使用COUNT(*)