题解 | #月均完成试卷数不小于3的用户爱作答的类别#

月均完成试卷数不小于3的用户爱作答的类别

https://www.nowcoder.com/practice/b1d13efcfa0c4ecea517afbdb9090845

select tag, COUNT(*) AS tag_cnt
FROM exam_record AS er
JOIN examination_info AS ei using(exam_id)
#要对uid进行限制当月均完成试卷数不小于3的用户
WHERE uid in (
    select uid FROM exam_record 
    WHERE submit_time is NOT NULL #得是完成的
    group by uid
    HAVING COUNT(*) / COUNT(DISTINCT MONTH(submit_time)) >= 3
)        
GROUP BY tag
ORDER BY tag_cnt DESC

题目要求的是用户每个月平均回答次数不小于3的作答类型和及这些用户对应作答类型的回答次数。

既然要有tag 和次数,那最后肯定是按tag进行分组的,次数就是COUNT(*) ,然后再对不小于3的用户这一条件进行限制。

用子查询对uid限制,用户的回答次数,那么子查询里面肯定要对用户进行分组

where uid in(
  select uid FROM exam_record
  WHERE submit_time is NOT NULL #得是完成的
  group by uid
  #进行对次数的筛选
  HAVING COUNT(*) / COUNT(distinct MONTH(submit_time)) >= 3 #总次数除以一共有几个月有回答就是月平均次数
)

全部评论

相关推荐

程序员花海:实习和校招简历正确格式应该是教育背景+实习+项目经历+个人评价 其中项目经历注意要体现业务 实习经历里面的业务更是要自圆其说 简历模板尽可能保持干净整洁 不要太花哨的
秋招吐槽大会
点赞 评论 收藏
分享
10-30 16:31
重庆大学 Java
代码飞升_不回私信人...:你说你善于学习,大家都会说。你说你是985,985会替你表达一切
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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