题解 | #每个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##秋招#