SELECT
video_id,
ROUND((AVG(IF(TIMESTAMPDIFF(SECOND,start_time,end_time)>=duration,1,0))*100 +
SUM(if_like)*5 +
COUNT(comment_id)*3 +
SUM(if_retweet)*2) /
(DATEDIFF(today,MAX(end_time))+1),0) hot_index
FROM(
SELECT
uvl.*,
vi.duration,
vi.release_time,
MAX(end_time) OVER() today
FROM
tb_user_video_log uvl
INNER JOIN
tb_video_info vi
ON uvl.video_id = vi.video_id
)t
WHERE
DATEDIFF(today, release_time) <= 29
GROUP BY
video_id,today
ORDER BY
hot_index DESC
LIMIT
3

京公网安备 11010502036488号