当前位置: 首页 > news >正文

【SQL】每类视频近一个月的转发量/率

【问题】

统计在有用户互动的最近一个月(按包含当天在内的近30天算,比如10月31日的近30天为10.2~10.31之间的数据)中,每类视频的转发量和转发率(保留3位小数)。

【数据】

用户-视频互动表 tb_user_video_log
(uid-用户ID, video_id-视频ID, start_time-开始观看时间, end_time-结束观看时间, if_follow-是否关注, if_like-是否点赞, if_retweet-是否转发, comment_id-评论ID)

短视频信息表 tb_video_info
(video_id-视频ID, author-创作者ID, tag-类别标签, duration-视频时长(秒), release_time-发布时间)

输出示例数据:tag,retweet_cut,retweet_rate

【要点】

  1. 获得两个时间戳之间相差多少天:datediff(x1,x2)
  2. 由题目中的例子看出,相差30天两个时间相减计算结果实际上是29天,很容易犯错
  3. 题目描述的比较模糊,“有用户互动的最近一个月” 是每类视频分别计算,还是所有的类型放一起看?面试中如果碰到这类题可以跟面试官沟通来明确需求。

【解答】

select b.tag,  sum(if_retweet) as retweet_cut,  round(sum(if_retweet)/count(*),3) as  retweet_rate
from tb_user_video_log a left join tb_video_info b on a.video_id=b.video_id
where datediff(a.start_time,(select start_time from tb_user_video_log order by id desclimit 1))<=29
group by b.tag
order by retweet_rate desc

【知识扩充】

sql 计算时间差 datediff & timestampdiff

http://www.lryc.cn/news/94319.html

相关文章:

  • chatgpt读论文
  • 关于visual studio 2010 及以上版本 引入boost库的最新解决方法
  • SpringBoot+ Dubbo + Mybatis + Nacos +Seata整合来实现Dubbo分布式事务
  • MongoDB使用
  • C#文件安全管理解析
  • 基于Dubbo分布式学校信息管理系统设计与实现
  • oracle面试问题和笔记整理
  • Hadoop_Yarn实践 (三) => (Yarn的基础架构、原理、容量/公平调度器、Tool接口、Yarn常用命令、核心参数)
  • postgresql 从应用角度看快照snapshot使用,事务隔离控制不再神密
  • mysql(mariadb)读写分离部署
  • ES-工作原理
  • C++小结(4)
  • Java框架之spring 的 messaging
  • linux使用grep命令查询nginx的进程情况时总是出现 grep --color=auto nginx
  • FFmpeg音视频开发知识点(二)
  • 【Java可执行命令】(十)JAR文件签名工具 jarsigner:通过数字签名及验证保证代码信任与安全,深入解析 Java的 jarsigner命令~
  • c#调用c++ dll,Release版本内存访问错误
  • 内网安全:Cobalt Strike 与 MSF 联动( 会话 相互转移 )
  • 性能测试讲解超详细Jmeter
  • 微服务 – Spring Cloud – Nacos 配置中心
  • 超细,设计一个“完美“的测试用例,用户登录模块实例...
  • 【C#】文件拖拽,获取文件路径
  • SAP PI/PO初步了解 2023.07.03
  • Java中生产者消费者模型
  • 测试Hyperledger Fabric环境
  • ClickHouse查询sql长度超超过最大限制
  • 【Axure教程】拖动调整行高列宽的表格
  • 中间件-netty(1)
  • 【方法】想把PDF文档转换成PPT,如何操作?
  • Linux--设置目录或文件的默认权限:umask权限掩码