题解 | #统计复旦用户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
全部评论

相关推荐

不愿透露姓名的神秘牛友
10-12 10:48
已编辑
秋招之苟:邻居家老哥19届双2硕大厂开发offer拿遍了,前几天向他请教秋招,他给我看他当年的简历,0实习实验室项目技术栈跟开发基本不沾边😂,我跟他说这个放在现在中厂简历都过不了
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务