SELECT
    video_id,
    ROUND((100 * full_play_rate + 5 * like_cnt+ 3 * comment_cnt + 2 * retweet_cnt) / (no_play_cnt + 1), 0) AS hot_index
FROM(
    SELECT
        video_id,
        AVG(timestampdiff(second, start_time, end_time) >= duration) AS full_play_rate,
        SUM(if_like) AS like_cnt,
        COUNT(comment_id) AS comment_cnt,
        SUM(if_retweet) AS retweet_cnt,
        DATEDIFF(DATE((SELECT MAX(end_time) FROM tb_user_video_log)), DATE((MAX(end_time)))) AS no_play_cnt
    FROM
        tb_user_video_log
    JOIN 
        tb_video_info USING(video_id)
    WHERE
        DATEDIFF(DATE((SELECT MAX(end_time) FROM tb_user_video_log)), DATE(release_time)) < 30
    GROUP BY
        video_id
) temp
ORDER BY 
    hot_index DESC
LIMIT
    3