问题分析

记录转发次数,也就是sum(if_retweet),这里不能用count,如果用count的话需要做一个if嵌套。

同时需要先进行where过滤掉超过时间的段的数据然后再进行group by

SELECT tag, SUM(if_retweet) retweet_cnt, ROUND(SUM(if_retweet)/COUNT(*), 3) retweet_rate
FROM tb_user_video_log 
LEFT JOIN tb_video_info USING(video_id)
WHERE DATEDIFF(DATE((select max(end_time) FROM tb_user_video_log)), DATE(end_time)) <= 29
GROUP BY tag
ORDER BY retweet_rate desc