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

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

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

select uid,
if(act_month_total is null,0,act_month_total),
if(act_days_2021 is null,0,act_days_2021),
if(act_days_2021_exam is null,0,act_days_2021_exam),
if(act_days_2021_question is null,0,act_days_2021_question)
from 
#表1:符合条件的uid
(select uid
from user_info
where level between 6 and 7) as T1

left join 

#表2:用户总活跃月份数  通过纵向连接求得
(select uid,count(distinct date_format(submit_time,'%Y%m')) as act_month_total
from 
(select uid,submit_time
from exam_record
union all   #纵向链接
select uid,submit_time
from practice_record) as t1
group by uid) as T2 using(uid)

left join 
 
#表3:2021年活跃天数  同样通过纵向连接两个record表
(select uid,count(distinct date(submit_time)) AS act_days_2021 # t2
from (select uid,submit_time
from exam_record
union all   #纵向链接
select uid,submit_time
from practice_record) as t2 
where year(submit_time) = 2021
group by uid) as T3 using(uid)

left join 

#表4:2021年试卷作答活跃天数
(select uid,	count(distinct date(submit_time)) as act_days_2021_exam	#t3试卷作答天数
from exam_record
where year(submit_time) = 2021
group by uid) as T4 using(uid)

left join 

#表5:2021年答题活跃天数
(select uid,count(distinct date(submit_time)) as act_days_2021_question #t4答题天数
from practice_record
where year(submit_time) = 2021
group by uid)  as T5 using(uid)

order by act_month_total desc,act_days_2021 desc

全部评论

相关推荐

1 收藏 评论
分享
牛客网
牛客企业服务