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

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

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

有哪位大神帮我看看我的代码,在Navicat上看和答案一模一样啊,为什么在这里运行不出来呢?

with t1 as (
  select
    a.uid,
    ifnull(count(distinct date_format(start_time,  '%Y-%m')),0) act_month_exam
  from
    exam_record c
    right join user_info a on c.uid = a.uid
  where
    a.level between 6 and 7  
  group by
    a.uid
),
# 用户试卷活跃天数2021年
t11 as (
  select a.uid,ifnull(act_days_exam,0) act_days_exam
    from user_info a
    left join 
    (select
    uid,
    count(distinct date_format(start_time, '%Y-%m-%d')) act_days_exam
  from
  exam_record 
  where
    year(start_time)='2021'    
  group by
    uid) m0
  on a.uid=m0.uid
    where
    a.level between 6 and 7 
),

# 用户题目练习活跃月份总
t2 as (
  select
    a.uid,
    ifnull(count(distinct date_format(submit_time,  '%Y-%m')),0) act_month_question
  from
    practice_record d
    right join user_info a on d.uid = a.uid
  where
    a.level between 6 and 7  
    group by a.uid
),
# 用户题目练习活跃天数2021年
t22 as (
select a.uid,ifnull(act_days_question,0) act_days_question
    from user_info a
    left join 
(
  select
    uid,
    count(distinct date_format(submit_time, '%Y-%m-%d')) act_days_question
  from
    practice_record
  where
     year(submit_time) ='2021' 
    group by uid
) m0 on a.uid=m0.uid 
  where a.level between 6 and 7),
# 用户总活跃情况-月份
t3 as 
(select uid ,act_month_exam+act_month_question as act_month_total
from 
(select 
    t1.uid,act_month_exam,act_month_question
from
    t1 left join t2
    on t1.uid=t2.uid
 union
select 
    t2.uid,act_month_exam,act_month_question
from
    t2 left join t1
    on t1.uid=t2.uid) m1),
# 用户总活跃情况-天数2021年
t4 as (select uid ,
              act_days_exam+act_days_question as act_days_2021,
              act_days_exam as act_days_2021_exam,
              act_days_question as act_days_2021_question
from 
(select 
    t11.uid,act_days_exam,act_days_question
from
    t11 left join t22
    on t11.uid=t22.uid
 union
select 
    t22.uid,act_days_exam,act_days_question
from
    t22 left join t11
    on t11.uid=t22.uid) m2 )
# 最终表
select t3.uid, 
       act_month_total,
       if (act_days_2021 is null,0,act_days_2021) act_days_2021,
       if (act_days_2021_exam is null,0, act_days_2021_exam) act_days_2021_exam,
       if ( act_days_2021_question is null,0, act_days_2021_question) act_days_2021_question 
from t3 left join t4
on t3.uid=t4.uid
order by act_month_total desc, act_days_2021 desc
#牛客bug##秋招#
全部评论

相关推荐

04-11 21:31
四川大学 Java
野猪不是猪🐗:(ja)va学弟这招太狠了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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