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

【场景】:近一个月

【分类】:聚合函数、日期函数、限量查询、date_sub

分析思路

难点:

1.近一个月的数据变化情况

(1)计算当天日期和近一个月的开始日期

  • [条件]:当天就是最大日期

  • [使用]:date(end_time);date(date_sub(end_time,interval 29 day));limit 1

(2)统计被播放次数,完成播放次数,被点赞次数,评论次数,转发次数,最近无播放天数

  • [条件]:release_time >= date_min

  • [使用]:count;sum;min

(3)按照公式查询找出近一个月发布的视频中热度最高的top3视频

  • [使用]:limit 3

求解代码

方法一:

with 子句

with
    main as(
        #计算当天日期和近一个月的开始日期
        select
            date(end_time) as date_max,
            date(date_sub(end_time,interval 29 day)) as date_min
        from tb_user_video_log
        join tb_video_info using(video_id)
        order by date(end_time) desc
        limit 1
    )
    ,main1 as(
        #统计被播放次数,完成播放次数,被点赞次数,评论次数,转发次数,最近无播放天数
        select 
            a.video_id,
            count(end_time) as look,
            count(if(timestampdiff(second,start_time,end_time) >= duration,1,null)) as finsh_look,
            sum(if_like) as like_cnt,
            count(comment_id) as comment_cnt,
            sum(if_retweet) as retweet_cnt,
            min(timestampdiff(day,date(end_time),date_max)) as date_not
        from tb_user_video_log a,tb_video_info b,main
        where a.video_id = b.video_id
        and release_time >= date_min
        group by video_id
    ) 

#按照公式查询找出近一个月发布的视频中热度最高的top3视频
select
    video_id,
    round((100*(finsh_look/look)+5*like_cnt+3*comment_cnt+2*retweet_cnt)/(date_not+1)) as hot_index
from main1
order by hot_index desc
limit 3

方法二:

from嵌套子查询

#按照公式查询找出近一个月发布的视频中热度最高的top3视频
select
    video_id,
    round((100*(finsh_look/look)+5*like_cnt+3*comment_cnt+2*retweet_cnt)/(date_not+1)) as hot_index
from(
    #统计被播放次数,完成播放次数,被点赞次数,评论次数,转发次数,最近无播放天数
    select 
        a.video_id,
        count(end_time) as look,
        count(if(timestampdiff(second,start_time,end_time) >= duration,1,null)) as finsh_look,
        sum(if_like) as like_cnt,
        count(comment_id) as comment_cnt,
        sum(if_retweet) as retweet_cnt,
        min(timestampdiff(day,date(end_time),date_max)) as date_not
    from tb_user_video_log a,tb_video_info b,(
        #计算当天日期和近一个月的开始日期
        select
            date(end_time) as date_max,
            date(date_sub(end_time,interval 29 day)) as date_min
        from tb_user_video_log
        join tb_video_info using(video_id)
        order by date(end_time) desc
        limit 1
    )main
    where a.video_id = b.video_id
    and release_time >= date_min
    group by video_id
)  main1
order by hot_index desc
limit 3
全部评论

相关推荐

27届学院本誓死冲击...:自我评价和校园经历全删了,荣誉经历只留奖学金,项目也全得换都不如外卖
点赞 评论 收藏
分享
评论
1
3
分享

创作者周榜

更多
正在热议
更多
# 春招至今,你的战绩如何? #
4344次浏览 34人参与
# 你的实习产出是真实的还是包装的? #
1041次浏览 27人参与
# 巨人网络春招 #
11132次浏览 221人参与
# 军工所铁饭碗 vs 互联网高薪资,你会选谁 #
6842次浏览 35人参与
# 简历第一个项目做什么 #
31227次浏览 312人参与
# 当下环境,你会继续卷互联网,还是看其他行业机会 #
186301次浏览 1113人参与
# MiniMax求职进展汇总 #
22753次浏览 292人参与
# 面试紧张时你会有什么表现? #
30312次浏览 188人参与
# 简历中的项目经历要怎么写? #
309297次浏览 4146人参与
# 网易游戏笔试 #
6300次浏览 83人参与
# 职能管理面试记录 #
10674次浏览 59人参与
# 把自己当AI,现在最消耗你token的问题是什么? #
6809次浏览 154人参与
# 从哪些方向判断这个offer值不值得去? #
56693次浏览 357人参与
# 腾讯音乐求职进展汇总 #
160376次浏览 1105人参与
# 小红书求职进展汇总 #
226831次浏览 1356人参与
# AI时代,哪些岗位最容易被淘汰 #
62254次浏览 723人参与
# 你怎么看待AI面试 #
179196次浏览 1160人参与
# 正在春招的你,也参与了去年秋招吗? #
362437次浏览 2631人参与
# 你的房租占工资的比例是多少? #
92119次浏览 896人参与
# 机械求职避坑tips #
94392次浏览 567人参与
# 校招笔试 #
465713次浏览 2948人参与
# 面试官最爱问的 AI 问题是...... #
27023次浏览 833人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务