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

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

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

select
    a.device_id,
    a.university,
    count(b.question_id) question_cnt,
    sum(if (result = 'right', 1, 0)) right_question_cnt
from
    user_profile a
    left join question_practice_detail b on a.device_id = b.device_id
    and month (b.date) = 8
where
    a.university = '复旦大学'
group by
    a.device_id

易错点有一下几个

  1. month的判断要放在on的联查后,如果放在where后的话,八月份答题数量为0的用户就会查不出来
  2. count不能count(*),如果count(*),八月份没做题的人也会判断为做了一提,要使用count(b.question_id)
  3. 判断正确数量使用sum(if())的组合
全部评论

相关推荐

点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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