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

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

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


###第一次思路,代码冗余
SELECT 
a1.uid
,COUNT(DISTINCT a2.active_month) act_month_total	
,COUNT(DISTINCT a3.active_day) act_days_2021
,COUNT(DISTINCT DATE_FORMAT(t3.submit_time,'%Y%m%d'))act_days_2021_exam
,COUNT(DISTINCT DATE_FORMAT(t4.submit_time,'%Y%m%d'))	act_days_2021_question
FROM  (SELECT uid FROM user_info t1 WHERE LEVEL BETWEEN 6 AND 7) a1
LEFT JOIN exam_record t3 ON a1.uid=t3.uid AND YEAR(t3.submit_time)=2021
LEFT JOIN practice_record t4 ON a1.uid=t4.uid AND YEAR(t4.submit_time)=2021
LEFT JOIN
  (SELECT DISTINCT uid, DATE_FORMAT(start_time, "%Y%m") AS active_month FROM exam_record
  UNION ALL 
  SELECT DISTINCT uid, DATE_FORMAT(submit_time, "%Y%m") AS active_month FROM practice_record) a2 ON a1.uid=a2.uid
LEFT JOIN
(SELECT DISTINCT uid, DATE_FORMAT(start_time, "%Y%m%d") AS active_day FROM exam_record WHERE YEAR(submit_time)=2021
  UNION ALL 
  SELECT DISTINCT uid, DATE_FORMAT(submit_time, "%Y%m%d") AS active_day FROM practice_record WHERE YEAR(submit_time)=2021
) a3 ON a1.uid=a3.uid
GROUP BY a1.uid
ORDER BY act_month_total DESC,act_days_2021 DESC*/

###第二次思路,看了评论区大佬做的,代码简洁不少
SELECT 
t1.uid
,COUNT(DISTINCT act_month) act_month_total
,COUNT(DISTINCT CASE WHEN act_year=2021 THEN act_day END ) act_days_2021
,COUNT(DISTINCT CASE WHEN act_year=2021 AND tag='exam' THEN act_day END) 	act_days_2021_exam
,COUNT(DISTINCT CASE WHEN act_year=2021 AND tag='question' THEN act_day END) act_days_2021_question
FROM user_info t1
LEFT JOIN
(SELECT uid,YEAR(start_time) act_year,DATE_FORMAT(start_time,'%Y%m') act_month,DATE_FORMAT(start_time,'%Y%m%d') act_day,'exam' AS tag FROM exam_record
UNION ALL
SELECT uid,YEAR(submit_time) act_year,DATE_FORMAT(submit_time,'%Y%m') act_month,DATE_FORMAT(submit_time,'%Y%m%d') act_day,'question' AS tag FROM practice_record
ORDER BY uid
)a1 ON t1.uid=a1.uid
 WHERE t1.level BETWEEN 6 AND 7
GROUP BY uid 
ORDER BY act_month_total DESC,act_days_2021 DESC

全部评论

相关推荐

09-13 17:25
亲切的00后在笔试:我也遇到了,所以我早他一步查看图片
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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