题解 | #每类视频近一个月的转发量/率#
每类视频近一个月的转发量/率
https://www.nowcoder.com/practice/a78cf92c11e0421abf93762d25c3bfad
select tag, sum(if_retweet) as retweet_cut, round(sum(if_retweet) / count(*),3) retweet_rate from tb_user_video_log log left join tb_video_info info on log.video_id = info.video_id where datediff( date((select max(start_time)from tb_user_video_log)),date(log.start_time)) <=29 group by tag order by retweet_cut desc
难点:计算最近一个月的记录,这里先计算最近一次记录 (select max(start_time) from tb_user_video_log),
- 注意我们不直接使用max()聚合函数,因为后续我们还需要嵌套一个datediff(),即datediff(date(1),date(2))<=29
- 注意我们需要计算的是30 天内,所以应该是<=29。
在select语句中,计算比率我们可以选择:
- sum(if_retweet) / count(*)
- sum(if_retweet) / sum(1)