描述

用户-视频互动表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 每个创作者每月的涨粉率及截止当前的总粉丝量相关推荐

  1. 牛客网 SQL大厂面试真题篇 SQL2 平均播放进度大于60%的视频类别

    描述 用户-视频互动表tb_user_video_log id uid video_id start_time end_time if_follow if_like if_retweet commen ...

  2. 牛客网 SQL大厂面试真题篇 SQL5 国庆期间每类视频点赞量和转发量

    描述 用户-视频互动表tb_user_video_log id uid video_id start_time end_time if_follow if_like if_retweet commen ...

  3. 牛客网 SQL大厂面试真题篇 SQL3 每类视频近一个月的转发量/率

    描述 用户-视频互动表tb_user_video_log id uid video_id start_time end_time if_follow if_like if_retweet commen ...

  4. 牛客网 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 ...

  5. 牛客网SQL大厂面试真题(一)

    SQL1 各个视频的平均完播率 SELECT log.video_id, ROUND(SUM(IF(TIMESTAMPDIFF(SECOND, log.start_time, log.end_time ...

  6. 牛客网SQL大厂面试真题(二)

    SQL25 某宝店铺的SPU数量 SELECT style_id, COUNT(1) AS SPU_num FROM product_tb GROUP BY style_id ORDER BY SPU ...

  7. SQL 大厂面试真题篇

    ​ 01 某音短视频 某音短视频 SQL1 各个视频的平均完播率 描述: 用户-视频互动表tb_user_video_log id uid video_id start_time end_time i ...

  8. mysql牛客刷题(SQL大厂面试真题)

    文章目录 某音短视频 SQL1 各个视频的平均完播率 SQL2 平均播放进度大于60%的视频类别 SQL3 每类视频近一个月的转发量/率 SQL4 每个创作者每月的涨粉率及截止当前的总粉丝量 用户增长 ...

  9. 牛客SQL大厂面试真题——出行场景(滴滴打车)

    昨天我们学习了Mysql的函数,相信大家已经了解到差不多了,接下来跟随我利用牛客网的上的真题对我们学习成果进行检验吧! 上一期博客传送门:Mysql常用函数总结 文章目录 1.2021年国庆在北京接单 ...

最新文章

  1. gcd(辗转相除法)
  2. linux centos 使用 alpine 编译的二进制文件 报错 /lib/ld-musl-x86_64.so.1: bad ELF interpreter 解决方法
  3. mysql 1046 3d000_老师 出现ERROR 1046(3D000): No Database Selected怎么办
  4. 图像缩放算法_opencv缩放算法
  5. 万达与IBM联手发力公有云市场,为不让马云当首富王健林也是拼了
  6. Entity Framework查询,EF执行SQl
  7. OSChina 周一乱弹 ——程序员用代码写的爱情
  8. 牛客题霸 [ 集合的所有子集] C++题解/答案
  9. java 四元一次方程_JAVA编写求解一元多次方程的程序,要求如下:
  10. [转]# python中init和new的区别
  11. Linux(CentOS)安装Node.JS和npm的两种方式(yum安装和源码安装)
  12. python源码剖析_Python源码剖析
  13. 遥感、GIS、计算机视频教程
  14. 锦绣金秋,共荟未来——荟语酒店投资人沙龙活动
  15. wav转mp3,wav怎么转换成mp3?
  16. Error response from daemon: Pool overlaps with other one on this address space
  17. 移动硬盘插服务器上坏了,移动硬盘接口坏了怎么办解决教程
  18. 使用nssm将STAF安装为windows系统服务
  19. php中的时间戳_php时间戳是什么
  20. 高并发系统设计四(系统怎样做到高可用)

热门文章

  1. 解决小米手环无法复制加密卡问题
  2. 计算机中级审计职称考试试题,历年中级审计师考题
  3. Adobe XD文件转PDF、再转成一张大图的办法
  4. [论文阅读]面向全局:用于高分辨率遥感图像语义分割的宽上下transforms
  5. 全面理解EOS——3.cleos使用详解
  6. 朴素版dijkstra(稠密图)
  7. 2018华韬会领袖峰会澳大利亚品味生活之旅
  8. 行业资讯 | 入门revit软件需要理清哪些概念。
  9. 盐城工学院计算机系专业主任,盐城工学院专业系
  10. vue项目:知识付费平台(移动端)