题解 | #每类视频近一个月的转发量/率#
每类视频近一个月的转发量/率
https://www.nowcoder.com/practice/a78cf92c11e0421abf93762d25c3bfad
#解题思路
-- 先进行并表操作
-- 在根据用户,有互动,找出最近的一个时间点,然后以这个时间点往后推30天,用between and 来找出符合条件的筛选出来
-- 对转发量按照tag进行求和,转发率通过对结束时间进行记数可以得出
WITH t2 AS ( SELECT MAX(DATE_FORMAT(end_time,'%Y-%m-%d')) AS decent_starttime FROM tb_user_video_log WHERE if_follow != 0 OR if_like != 0 OR if_retweet != 0 OR comment_id IS NOT NULL ), t1 as ( SELECT a.if_retweet, a.end_time, b.tag FROM tb_user_video_log a JOIN tb_video_info b ON a.video_id = b.video_id WHERE DATE_FORMAT(end_time,'%Y-%m-%d') BETWEEN DATE_SUB((SELECT decent_starttime FROM t2), INTERVAL 29 DAY) and (SELECT decent_starttime FROM t2) ) SELECT tag, sum(if_retweet) as retweet_cut, round(sum(if_retweet)/count(end_time),3) as retweet_rate FROM t1 group by tag order by retweet_rate desc;