题解 | #统计复旦用户8月练题情况#

统计复旦用户8月练题情况

https://www.nowcoder.com/practice/53235096538a456b9220fce120c062b3

SELECT 
    up.device_id,up.university,
    COUNT(CASE MONTH(qpd.date) WHEN 8 THEN 1 END),
    COUNT(CASE qpd.result WHEN 'right' THEN 1 END)
FROM user_profile AS up
LEFT JOIN question_practice_detail AS qpd
ON up.device_id = qpd.device_id 
WHERE up.university = '复旦大学' 
GROUP BY up.device_id

首先需要将两表联结在一起,随后筛选出学校信息为‘复旦大学’的行,

并按照设备id对数据进行分组,这样子就得到了每个复旦学生的个人统计数据

接下来只需要使用CASE表达式来计算特定条件的行数即可:

计算月份为8时的答题数量:

 COUNT(CASE MONTH(qpd.date) WHEN 8 THEN 1 END)

计算答对的题目数量:

    COUNT(CASE qpd.result WHEN 'right' THEN 1 END)

全部评论

相关推荐

04-19 11:59
门头沟学院 Java
卷不动辣24314:挂,看来不该投这个部门的
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务