题解 | 每个6/7级用户活跃情况

每个6/7级用户活跃情况

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

with a as(
    select uid,date(start_time) dt from exam_record
    union 
    select uid,date(submit_time) dt from practice_record
    order by uid
)

select ui.uid,
count(distinct substr(a.dt,1,7) )
as 	act_month_total,
count(distinct case when year(a.dt)=2021 then dt end )
as act_days_2021,
count(distinct case when year(er.start_time) =2021 then  date(er.start_time) end ) as act_days_2021_exam,
count(distinct case when year(pr.submit_time) =2021 then  date(pr.submit_time) end ) as act_days_2021_question


from user_info ui
left join exam_record er
on ui.uid = er.uid
left join practice_record pr
on ui.uid=pr.uid
left join a
on a.uid=ui.uid

where level = 6 or level =7
group by ui.uid
order by act_month_total desc,act_days_2021 desc

从最后一个字段往第一个字段做,思路会更清晰一些

难点在于CTE实现把exam record的日子和practice record的日子合并在一起

全部评论

相关推荐

牛客583549203号:腾讯还好,况且实习而已,实习生流动性很大,属于正常现象,记得和HR委婉解释
点赞 评论 收藏
分享
03-29 12:10
门头沟学院 C++
挣K存W养DOG:散漫消极者淘汰,一眼坑爹。实习几个月转正的时候说你加班太少,能力还行态度不够积极裁了,马上老实。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务