题解 | #近三个月未完成试卷数为0的用户完成情况#
近三个月未完成试卷数为0的用户完成情况
https://www.nowcoder.com/practice/4a3acb02b34a4ecf9045cefbc05453fa
- 对月份进行排序,得到子表:dense_rank()
- 根据子表计算完成试卷的数量
- 根据uid分组
- 条件:
- 近三个月,rank<=3,where
- 没有试卷是未完成的状态:分组后筛选,开始数=得分次数 having count
- 排序
select uid, count(start_time) as exam_complete_cnt from( select *, dense_rank() over(partition by uid order by date_format(start_time,"%Y%m") desc) as ranking from exam_record ) t1 where ranking <= 3 group by uid having count(start_time) = count(score) -- 开始数=得分次数 order by exam_complete_cnt desc,uid desc

