题解 | #每个6/7级用户活跃情况#
每个6/7级用户活跃情况
https://www.nowcoder.com/practice/a32c7c8590324c96950417c57fa6ecd1
# 6/7级用户
# 总活跃月份数,2021年活跃天数,2021年试卷作答活跃天数,2021年答题活跃天数
# 总活跃月份数,2021年活跃天数降序排序
# 注意user_info表联结后再进行聚合,否则符合条件的部份用户数据将为NULL
SELECT u.uid,
COUNT( DISTINCT a.active_month) AS act_month_total,
COUNT(DISTINCT CASE
WHEN YEAR(a.active_day)= '2021' THEN a.active_day END
) AS act_days_2021,
COUNT(DISTINCT CASE
WHEN YEAR(a.active_day)= '2021' AND a.category='试卷作答' THEN a.active_day END
) AS act_days_2021_exam,
COUNT(DISTINCT CASE
WHEN YEAR(a.active_day)= '2021' AND a.category='题目练习' THEN a.active_day END
) AS act_days_2021_question
FROM user_info AS u
LEFT JOIN (
(SELECT uid,
DATE_FORMAT(start_time,'%Y%m' ) AS active_month,
DATE_FORMAT(start_time,'%Y%m%d' ) AS active_day,
'试卷作答' AS category
FROM exam_record)
UNION ALL
(SELECT uid,
DATE_FORMAT(submit_time,'%Y%m' ) AS active_month,
DATE_FORMAT(submit_time,'%Y%m%d' ) AS active_day,
'题目练习' AS category
FROM practice_record)
) AS a
ON u.uid=a.uid
WHERE u.level >= 6
GROUP BY u.uid
ORDER BY act_month_total DESC, act_days_2021 DESC
;



查看19道真题和解析