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

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

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

要求

现在运营想要了解复旦大学的每个用户在8月份练习的总题目数和回答正确的题目数情况,请取出相应明细数据,对于在8月份没有练习过的用户,答题数结果返回0.

思路

解法1:

  1. 复旦用户: university = "复旦大学"
  2. 8月: EXTRACT(MONTH FROM DATE) = 08
  3. 总题目数: 这里我是先用when then 将 date为8月的 输出为1,剩下的 输出为0,然后用sum() 计算。
  4. 回答正确: 这个不知道怎么用 count() 算, 所以这里我是先用when then 将“right” 输出为1,"wrong"输出为0,然后用sum() 计算。

实现

select distinct a.device_id,a.university,sum(a.question_count) as question_cnt,
	sum(a.cnt) as right_question_cnt 
      from
      (SELECT up.device_id, up.university,qp.result,qp.date,
         case
         when qp.result = "right" then 1
         else 0
         end cnt,
         case
         when extract(month from qp.date) = 08 then 1
         else 0
         end question_count
            from 
              user_profile as up
              left join
              question_practice_detail as qp
              on 
              up.device_id = qp.device_id
              where university = "复旦大学" ) as a
       group by a.device_id
全部评论

相关推荐

offer多多的六边形战士很无语:看了你的博客,感觉挺不错的,可以把你的访问量和粉丝数在简历里提一下,闪光点(仅个人意见)
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务