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

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

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

比较容易理解的思路是:
1.先分别统计出每个学生8月答题的总数,和8月答对题的总数
2.再将user_profie这张表左外连接上述两张表
3.最后筛选复旦大学学生的数据即可
4.通过ifnull函数实现没答题,答题数目为0的需求。
select
  u.device_id,
  university,
  ifnull(ud.question_cnt, 0) as "question_cnt",
  ifnull(ud1.right_question_cnt, 0) as "right_question_cnt"
from
  user_profile u
  left join (
    select
      device_id,
      count(question_id) as "question_cnt"
    from
      question_practice_detail
    where
      date like "2021-08%"
    group by
      device_id
  ) as ud on u.device_id = ud.device_id
  left join (
    select
      device_id,
      count(result) as "right_question_cnt"
    from
      question_practice_detail
    where
      date like "2021-08%"
      and result = 'right'
    group by
      device_id
  ) as ud1 on u.device_id = ud1.device_id
where
  university = '复旦大学'


全部评论

相关推荐

评论
1
收藏
分享

创作者周榜

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