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

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

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

select
-- 3.最后聚合
    b.tag
    ,count(1) tag_cnt
from (
-- 1.要找到当月月均做题量>=3的人,就要先根据月份、用户进行分组,计算每人每月做题量。
-- 这里的目的只是找出我们要的uid
    select 
        uid
        ,month(start_time) my_month
        ,count(submit_time) cnt
    from exam_record
    group by uid,month(start_time)
) a 
inner join (
-- 2.把两个原始表合并得到全部想要的数据,
-- 这步之后我们已经得到了我们目标用户的全部做题数据,之后聚合、排序一下就可以了
    select 
        t1.uid
        ,t2.tag
    from exam_record t1
    inner join examination_info t2
    on t1.exam_id = t2.exam_id
) b
on a.uid = b.uid
-- 筛选做题量>=3的当月数据(这里题目没说明白,当月是9月)
where a.cnt>=3 and my_month = 9
group by b.tag
-- 4.排序
order by count(1) desc

全部评论

相关推荐

hso_:哈哈哈哈哈哈我没offer一样在同一道题开喷了
投递深圳同为数码等公司10个岗位
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务