select 
tag,
sum(if_retweet),
round(sum(if_retweet) / count(*),3) as retweet_rate
from 
tb_user_video_log a left join tb_video_info b on a.video_id = b.video_id
where date(start_time) > 
(
select
date_sub(MAX(date(start_time)),interval 30 day)
from tb_user_video_log
)
group by tag
order by retweet_rate desc

卡住的点:

(1)不知道怎么计算相差的日期,后面知道了date_sub函数

(2)max函数不能用在where中,因为他是聚合函数,是用在select中的,所以多建立一个子查询。