题解|窗口函数框架规则|#国庆期间每类视频点赞量和转发量#

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

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

# ### 第一步生成国庆三天及每天往前推7天的日期 + 这10天里每天的like_cnt和retweet_cnt
# SELECT 
#     tag,
#     DATE_FORMAT(start_time,'%Y-%m-%d') AS dt,
#     SUM(if_like) AS like_cnt,
#     SUM(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 dt,tag


# ### 第二部是使用窗口函数的框架规则对上面生成的进行整理 计算每天往前推7天的sum,当前行+前面6行
# SUM(like_cnt) OVER(PARTITION BY tag ORDER BY dt ROW 6 PRECEDING) AS sum_like_cnt_7d
# MAX(retweet_cnt) OVER(PARTITON BY tag ORDER BY dt ROW 6 PRECEDING) AS max_retweet_cnt_7d


# ### 第三步将上面两个综合起来
# SELECT 
#     tag,
#     DATE_FORMAT(start_time,'%Y-%m-%d') AS 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 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 dt,tag


### 第四步只输出10-01到10-03的
WITH t1 AS(
    SELECT 
    tag,
    DATE_FORMAT(start_time,'%Y-%m-%d') AS 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 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 dt,tag
)
SELECT * 
FROM t1 
WHERE dt BETWEEN '2021-10-01' AND '2021-10-03'
ORDER BY tag DESC,dt

### 窗口函数的框架规则学习:https://www.cnblogs.com/zhaoshujie/p/9594676.html

全部评论

相关推荐

秋招进行到现在终于能写总结了。完全没想到战线会拉这么长,过程会如此狼狈,不过更应该怪自己太菜了。好在所有的运气都用在了最后,也是有个去处。背景:双2本硕科班,无竞赛,本科一段研究所实习,硕士一段大厂暑期实习但无转正。技术栈是C++&nbsp;&amp;&nbsp;Golang,实习是客户端音视频(而且是鸿蒙端开发),简历两个C++项目一个Golang项目。主要投递岗位:后端,cpp软开,游戏服务端,测开,以及一些不拘泥于Java的岗位。从8月起总共投递123家公司,笔试数不清了,约面大约30家。offer/oc/意向:友塔游戏(第一个offer,面试体验很好,就是给钱好少南瑞继保(计算机科班点击就送(限男生),不...
乡土丁真真:佬很厉害,羡慕~虽然我还没有到校招的时候,也想讲一下自己的看法:我觉得不是CPP的问题,佬的背书双2,技术栈加了GO,有两段实习。投了123,面了30.拿到11个offer。这个数据已经很耀眼了。这不也是CPP带来的吗?当然也不止是CPP。至少来说在这个方向努力过的也会有好的结果和选择。同等学历和项目选java就会有更好的吗?我个人持疑问态度。当然CPP在方向选择上确实让人头大,但是我觉得能上岸,至于最后做什么方向,在我看来并不重要。至于CPP特殊,有岗位方向的随机性,java不是不挑方向,只是没得选而已。也希望自己以后校招的时候能offer满满
点赞 评论 收藏
分享
最近又搬回宿舍了,在工位坐不住,写一写秋招起伏不断的心态变化,也算对自己心态的一些思考表演式学习从开始为实习准备的时候就特别焦虑,楼主一开始选择的是cpp后端,但是24届这个方向已经炸了,同时自己又因为本科非92且非科班,所以感到机会更加迷茫。在某天晚上用java写出hello&nbsp;world并失眠一整晚后选择老本行干嵌入式。理想是美好的,现实情况是每天忙但又没有实质性进展,总是在配环境,调工具,顺带还要推科研。而这时候才发现自己一直在表演式学习,徘徊在设想如何展开工作的循环里,导致没有实质性进展。现在看来当时如果把精力专注在动手写而不是两只手端着看教程,基本功或许不会那么差。实习的焦虑5月,楼主...
耶比:哲学上有一个问题,玛丽的房间:玛丽知道眼睛识别色彩的原理知道各种颜色,但是她生活在黑白的房间里,直到有一天玛丽的房门打开了她亲眼看到了颜色,才知道什么是色彩。我现在最大可能的减少对非工作事情的思考,如果有一件事困扰了我, 能解决的我就直接做(去哪里或者和谁吵架等等……),解决不了的我就不想了,每一天都是最年轻的一天,珍惜今天吧
投递比亚迪等公司10个岗位 > 秋招被确诊为…… 牛客创作赏金赛
点赞 评论 收藏
分享
10-30 22:18
已编辑
毛坦厂中学 C++
点赞 评论 收藏
分享
头像
11-27 14:28
长沙理工大学
刷算法真的是提升代码能力最快的方法吗?&nbsp;刷算法真的是提升代码能力最快的方法吗?
牛牛不会牛泪:看你想提升什么,代码能力太宽泛了,是想提升算法能力还是工程能力? 工程能力做项目找实习,算法也分数据结构算法题和深度学习之类算法
点赞 评论 收藏
分享
评论
点赞
1
分享
牛客网
牛客企业服务