题解 | #国庆期间每类视频点赞量和转发量#

国庆期间每类视频点赞量和转发量

https://www.nowcoder.com/practice/f90ce4ee521f400db741486209914a11

明确题意:

统计2021年国庆头3天每类视频每天的近一周总点赞量和一周内最大单天转发量

问题分解:

关联用户-视频互动表和短视频信息表:left join tb_user_video_log tuvl on tvi.video_id = tuvl.video_id

计算单天点赞量:sum(if_like)

计算单天转发量:sum(if_retweet)

按视频tag和日期分组:group by tag,dt

计算每天近一周总点赞量:sum(like_cnt) over w

计算每天近一周最大转发量:max(retweet_cnt) over w

筛选国庆头三天的记录:where dt between '2021-10-01' and '2021-10-03'

细节问题:

按视频类别降序、日期升序排序:order by tag desc,dt asc

select *
from(
select tag,
    dt,
    sum(like_cnt) over(partition by tag order by dt desc rows between current row and 6 following) sum_like_cnt_7d,
    max(retweet_cnt) over(partition by tag order by dt desc rows between current row and 6 following) max_retweet_cnt_7d
  # 开窗必须在筛选国庆3天记录前开,否则窗口只有三天记录
from(
select tag,
    date(start_time) dt,
    sum(if_like) like_cnt,
    sum(if_retweet) retweet_cnt
from tb_video_info tvi
left join tb_user_video_log tuvl on tvi.video_id = tuvl.video_id 
group by tag,dt
    ) t1
) t2
where dt between '2021-10-01' and '2021-10-03'
order by tag desc,dt asc;
全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务