# select
#     up.device_id,
#     up.university,
#     count(*) question_cnt,
#     count(if(result = 'right', 1, null)) right_question_cnt
# from
#     user_profile as up
#     left join question_practice_detail as qpd on (up.device_id = qpd.device_id)
# where
#     university = '复旦大学'
#     and (
#         date between '2021-08-01' and '2021-08-31'
#         or date is null
#     )
# group by
#     up.device_id,
#     up.university

SELECT
    u.device_id,
    u.university,
    SUM(IF(result IS NOT NULL, 1, 0)) AS question_cnt,
    SUM(IF(result = "right", 1, 0)) AS right_question_cnt
FROM
    user_profile u
    LEFT JOIN question_practice_detail q ON u.device_id = q.device_id
    AND MONTH(q.`date`) = "08"
WHERE 
    university = "复旦大学"
GROUP BY
    u.device_id,
    u.university