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

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

https://www.nowcoder.com/practice/f90ce4ee521f400db741486209914a11?tpId=268&tqId=2285070&ru=/exam/company&qru=/ta/sql-factory-interview/question-ranking&sourceUrl=%2Fexam%2Fcompany

方法一:
WITH t1 AS (
SELECT  tag,DATE_FORMAT(start_time,'%Y-%m-%d') dt,
		SUM(SUM(if_like))OVER(PARTITION BY tag ORDER BY DATE_FORMAT(start_time,'%Y-%m-%d') rows 6 preceding) AS sum_like_cnt_7d	,
        MAX(SUM(if_retweet))OVER(PARTITION BY tag ORDER BY DATE_FORMAT(start_time,'%Y-%m-%d') rows 6 preceding) AS 	max_retweet_cnt_7d
FROM tb_user_video_log JOIN tb_video_info USING(video_id)
WHERE DATEDIFF('2021-10-03',DATE_FORMAT(start_time,'%Y-%m-%d'))<9
GROUP BY  dt,tag
)
SELECT * FROM t1 WHERE dt BETWEEN '2021-10-01' AND '2021-10-03' ORDER BY tag DESC,dt ASC;

方法二:
select tag,dt,sum_like_cnt_7d,max_retweet_cnt_7d
from
(select tag,dt,
       sum(like_cnt) over (partition by tag order by dt rows 6 preceding) as sum_like_cnt_7d,
       max(retweet_cnt) over (partition by tag order by dt rows 6 preceding) as max_retweet_cnt_7d
from (
     select b.tag,DATE_FORMAT(a.start_time,'%Y-%m-%d') as dt,
     sum(a.if_like) as like_cnt,
     sum(a.if_retweet) as retweet_cnt
     from tb_user_video_log a
     join tb_video_info b
     on a.video_id=b.video_id
     WHERE DATEDIFF('2021-10-03',DATE_FORMAT(start_time,'%Y-%m-%d'))<9
     group by tag,dt
     order by tag,dt
) tt
order by tag desc,dt asc)aa
where dt between '2021-10-01' and '2021-10-03'

全部评论

相关推荐

2025-12-28 16:32
重庆邮电大学 Java
程序员花海:1.技能放最后,来面试默认你都会,技能没啥用 2.实习写的看起来没啥含金量,多读读部门文档,包装下 接LLM这个没含金量 也不要用重构这种 不会给实习生做的 3.抽奖这个还是Demo项目,实际在公司里面要考虑策略,满减,触发点,触发规则 库存 之类的,不是这个项目这么简单 4.教育背景提前,格式为 教育背景 实习 项目 技能 自我评价
简历被挂麻了,求建议
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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