牛客网 SQL大厂面试真题篇 SQL4 每个创作者每月的涨粉率及截止当前的总粉丝量
描述
用户-视频互动表tb_user_video_log
id | uid | video_id | start_time | end_time | if_follow | if_like | if_retweet | comment_id |
1 | 101 | 2001 | 2021-09-01 10:00:00 | 2021-09-01 10:00:20 | 0 | 1 | 1 | NULL |
2 | 105 | 2002 | 2021-09-10 11:00:00 | 2021-09-10 11:00:30 | 1 | 0 | 1 | NULL |
3 | 101 | 2001 | 2021-10-01 10:00:00 | 2021-10-01 10:00:20 | 1 | 1 | 1 | NULL |
4 | 102 | 2001 | 2021-10-01 10:00:00 | 2021-10-01 10:00:15 | 0 | 0 | 1 | NULL |
5 | 103 | 2001 | 2021-10-01 11:00:50 | 2021-10-01 11:01:15 | 1 | 1 | 0 | 1732526 |
6 | 106 | 2002 | 2021-10-01 10:59:05 | 2021-10-01 11:00:05 | 2 | 0 | 0 | NULL |
(uid-用户ID, video_id-视频ID, start_time-开始观看时间, end_time-结束观看时间, if_follow-是否关注, if_like-是否点赞, if_retweet-是否转发, comment_id-评论ID)
短视频信息表tb_video_info
id | video_id | author | tag | duration | release_time |
1 | 2001 | 901 | 影视 | 30 | 2021-01-01 07:00:00 |
2 | 2002 | 901 | 美食 | 60 | 2021-01-01 07:00:00 |
3 | 2003 | 902 | 旅游 | 90 | 2020-01-01 07:00:00 |
4 | 2004 | 902 | 美女 | 90 | 2020-01-01 08:00:00 |
(video_id-视频ID, author-创作者ID, tag-类别标签, duration-视频时长, release_time-发布时间)
问题:计算2021年里每个创作者每月的涨粉率及截止当月的总粉丝量
注:
- 涨粉率=(加粉量 - 掉粉量) / 播放量。结果按创作者ID、总粉丝量升序排序。
- if_follow-是否关注为1表示用户观看视频中关注了视频创作者,为0表示此次互动前后关注状态未发生变化,为2表示本次观看过程中取消了关注。
输出示例:
示例数据的输出结果如下
author | month | fans_growth_rate | total_fans |
901 | 2021-09 | 0.500 | 1 |
901 | 2021-10 | 0.250 | 2 |
解释:
示例数据中表tb_user_video_log里只有视频2001和2002的播放记录,都来自创作者901,播放时间在2021年9月和10月;其中9月里加粉量为1,掉粉量为0,播放量为2,因此涨粉率为0.500(保留3位小数);其中10月里加粉量为2,掉份量为1,播放量为4,因此涨粉率为0.250,截止当前总粉丝数为2。
题解:
加粉量 - 掉粉量:直接sumif,判断如果掉粉的话为-1,否则(涨粉或不变化)就为1或0,最后用窗口函数计算每个用户每月的总粉丝量
select author,month,round(follow/total,3) fans_growth_rate,sum(follow) over(partition by author order by month) total_fans
from(select author,DATE_FORMAT(start_time,'%Y-%m') month,sum(if(if_follow=2,-1,if_follow)) follow,count(1) totalfrom tb_user_video_log aleft join tb_video_info bon a.video_id=b.video_idwhere year(start_time)=2021group by author,DATE_FORMAT(start_time,'%Y-%m'))t
order by author,total_fans
牛客网 SQL大厂面试真题篇 SQL4 每个创作者每月的涨粉率及截止当前的总粉丝量相关推荐
- 牛客网 SQL大厂面试真题篇 SQL2 平均播放进度大于60%的视频类别
描述 用户-视频互动表tb_user_video_log id uid video_id start_time end_time if_follow if_like if_retweet commen ...
- 牛客网 SQL大厂面试真题篇 SQL5 国庆期间每类视频点赞量和转发量
描述 用户-视频互动表tb_user_video_log id uid video_id start_time end_time if_follow if_like if_retweet commen ...
- 牛客网 SQL大厂面试真题篇 SQL3 每类视频近一个月的转发量/率
描述 用户-视频互动表tb_user_video_log id uid video_id start_time end_time if_follow if_like if_retweet commen ...
- 牛客网 SQL大厂面试真题篇SQL12 连续签到领金币(困难类题目)
描述 用户行为日志表tb_user_log id uid artical_id in_time out_time sign_in 1 101 0 2021-07-07 10:00:00 2021-07 ...
- 牛客网SQL大厂面试真题(一)
SQL1 各个视频的平均完播率 SELECT log.video_id, ROUND(SUM(IF(TIMESTAMPDIFF(SECOND, log.start_time, log.end_time ...
- 牛客网SQL大厂面试真题(二)
SQL25 某宝店铺的SPU数量 SELECT style_id, COUNT(1) AS SPU_num FROM product_tb GROUP BY style_id ORDER BY SPU ...
- SQL 大厂面试真题篇
01 某音短视频 某音短视频 SQL1 各个视频的平均完播率 描述: 用户-视频互动表tb_user_video_log id uid video_id start_time end_time i ...
- mysql牛客刷题(SQL大厂面试真题)
文章目录 某音短视频 SQL1 各个视频的平均完播率 SQL2 平均播放进度大于60%的视频类别 SQL3 每类视频近一个月的转发量/率 SQL4 每个创作者每月的涨粉率及截止当前的总粉丝量 用户增长 ...
- 牛客SQL大厂面试真题——出行场景(滴滴打车)
昨天我们学习了Mysql的函数,相信大家已经了解到差不多了,接下来跟随我利用牛客网的上的真题对我们学习成果进行检验吧! 上一期博客传送门:Mysql常用函数总结 文章目录 1.2021年国庆在北京接单 ...
最新文章
- gcd(辗转相除法)
- linux centos 使用 alpine 编译的二进制文件 报错 /lib/ld-musl-x86_64.so.1: bad ELF interpreter 解决方法
- mysql 1046 3d000_老师 出现ERROR 1046(3D000): No Database Selected怎么办
- 图像缩放算法_opencv缩放算法
- 万达与IBM联手发力公有云市场,为不让马云当首富王健林也是拼了
- Entity Framework查询,EF执行SQl
- OSChina 周一乱弹 ——程序员用代码写的爱情
- 牛客题霸 [ 集合的所有子集] C++题解/答案
- java 四元一次方程_JAVA编写求解一元多次方程的程序,要求如下:
- [转]# python中init和new的区别
- Linux(CentOS)安装Node.JS和npm的两种方式(yum安装和源码安装)
- python源码剖析_Python源码剖析
- 遥感、GIS、计算机视频教程
- 锦绣金秋,共荟未来——荟语酒店投资人沙龙活动
- wav转mp3,wav怎么转换成mp3?
- Error response from daemon: Pool overlaps with other one on this address space
- 移动硬盘插服务器上坏了,移动硬盘接口坏了怎么办解决教程
- 使用nssm将STAF安装为windows系统服务
- php中的时间戳_php时间戳是什么
- 高并发系统设计四(系统怎样做到高可用)
热门文章
- 解决小米手环无法复制加密卡问题
- 计算机中级审计职称考试试题,历年中级审计师考题
- Adobe XD文件转PDF、再转成一张大图的办法
- [论文阅读]面向全局:用于高分辨率遥感图像语义分割的宽上下transforms
- 全面理解EOS——3.cleos使用详解
- 朴素版dijkstra(稠密图)
- 2018华韬会领袖峰会澳大利亚品味生活之旅
- 行业资讯 | 入门revit软件需要理清哪些概念。
- 盐城工学院计算机系专业主任,盐城工学院专业系
- vue项目:知识付费平台(移动端)