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

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

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

select
    video_id,
    round((
        100 * finish_rate + 5 * like_cnt + 3 * comment_cnt + 2 * retweet_cnt
    ) / (no_play_cnt + 1),0) as hot_index
from
(
    select  a.video_id,  
    sum(timestampdiff(second, start_time, end_time)>=duration)/count(*) as finish_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
                    )
                ),
                max(date (end_time))
            ) as no_play_cnt
from
    (
        select
            video_id,
            duration,
            release_time
        from
            tb_video_info
    ) a
    inner join (
        select
            *
        from
            tb_user_video_log
    ) b on a.video_id = b.video_id
where
    datediff (
        date (
            (
                select
                    max(end_time)
                from
                    tb_user_video_log
            )
        ),
        date (release_time)
    ) <= 29
group by
    a.video_id
)t0
order by hot_index desc
limit 3

最近一个月发布视频概念需要理清

全部评论

相关推荐

03-10 11:23
门头沟学院 Java
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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