题解 | #近一个月发布的视频中热度最高的top3视频#

近一个月发布的视频中热度最高的top3视频

https://www.nowcoder.com/practice/0226c7b2541c41e59c3b8aec588b09ff

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



全部评论

相关推荐

好奇英伟达这种国际出名公司,什么bg什么能力能进
希望被offer砸中...:bg不如多元化容易进,思路要打开
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
08-08 18:20
职场水母:这题思路是什么,我目前想的一个暴力方法就是先把这个链表遍历一遍,用哈希表存储出现次数,然后再根据哈希表来一个一个删除节点,
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务