#重点就是找到最近一个月,其余都不难(DATE_SUB(MAX(DATE(end_time)), INTERVAL 29 DAY)
SELECT
    tag,
    SUM(if_retweet) AS retweet_cnt,
    ROUND(SUM(if_retweet) / COUNT(end_time), 3) AS retweet_rate
FROM tb_user_video_log tu
JOIN tb_video_info tv
ON tu.video_id = tv.video_id
WHERE DATE(end_time) >= (SELECT
                            DATE_SUB(MAX(DATE(end_time)), INTERVAL 29 DAY) #找到最近一个月
                        FROM tb_user_video_log)
GROUP BY tag
ORDER BY retweet_rate DESC