题解 | #近三个月未完成试卷数为0的用户完成情况#

近三个月未完成试卷数为0的用户完成情况

https://www.nowcoder.com/practice/4a3acb02b34a4ecf9045cefbc05453fa

  • 对月份进行排序,得到子表:dense_rank()
  • 根据子表计算完成试卷的数量
    • 根据uid分组
    • 条件:
      1. 近三个月,rank<=3,where
      2. 没有试卷是未完成的状态:分组后筛选,开始数=得分次数 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
全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

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