牛客SQL刷题第三趴——SQL大厂面试真题

结果,保留了两位小数,并根据播放进度以相反的顺序进行排序。

[En]

As a result, two decimal places are retained and sorted in reverse order according to the playback progress.

解题思路:

1、播放进度结算

①、时间差函数,timestampdiff(unit,char(begin-end))

②、判断,if或者用case when

③、结果保留两位小数,使用round(xx,2)

④、使用concat拼接数值和”%”

2、多表的内连接。

3、进度大于60%的类别输出,因为这个数值是聚合函数,需要使用having函数

4、并按播放进度倒序排序。使用order by desc

【描述】用户-视频互动表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-发布时间)

问:统计最近一个月有用户互动的每种类型视频的重传次数和转播率(基于包括当天在内的近30天,例如10月31日最后30天的10.2至10.31之间)。

[En]

Question: statistics on the number and rate of retransmission of each type of video in the most recent month with user interaction (based on nearly 30 days including that day, for example, between 10.2 and 10.31 in the last 30 days on October 31).

注:重传率=重传量/播放量。按照重传率的降序对结果进行排序。

[En]

Note: retransmission rate = retransmission quantity / playback quantity. The results were sorted according to the descending order of retransmission rate.

select t1.tag,
sum(t.if_retweet) as retweet_cut,-- 转发量
round(sum(t.if_retweet)/count(t.video_id),3) as retweet_rate
from tb_video_info t1
left join tb_user_video_log t
on t.video_id=t1.video_id
where date(start_time)>(select date_sub(MAX(start_time),interval 30 day) from tb_user_video_log)
group by t1.tag
order by retweet_rate desc;

解题思路:

转发量:sum(if_reweet)

转发率:转发量/播放量。也就是sum(if_reweet)/count(video_id)。结果保留3位小数,就是用ROUND(转发率,3)即可

最近30天:

写法①、date_sub函数(时间向前推移函数)

(select date_sub(MAX(start_time),interval 30 day) from tb_user_video_log ——这一步的意思是以最新的播放日期为准,向前推移30天。

写法②、timestampdiff函数(时间差函数)

timestampdiff(date,t.start_time,(select max(t.start_time) from tb_user_video_log)

Original: https://www.cnblogs.com/ruoli-121288/p/16478336.html
Author: 徐若离
Title: 牛客SQL刷题第三趴——SQL大厂面试真题

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/505216/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • MySQL执行一条查询语句的过程

    查询缓存 在解析一个查询语句之前,如果查询缓存时打开的,那么 MySQL 会优先检查这个查询是否命中查询缓存中的数据。这个检查时通过一个对大小写敏感的哈希查找实现的。查询和缓存中的…

    数据库 2023年5月24日
    0160
  • Digester解析xml原理

    Tomcat内部是使用Digester来解析xml文件的,将xml转化为java对象。 digester底层是基于SAX+事件驱动+栈的方式来搭建实现的,SAX主要用来解析xml,…

    数据库 2023年6月16日
    0106
  • docker部署mysql集群

    docker部署mysql集群 1.0 安装环境 1.1 安装Centos7 Docker官方建议在Ubuntu中安装,因为Docker是基于Ubuntu发布的,而且一般Docke…

    数据库 2023年6月9日
    0129
  • Vue(十三)—过滤器filter,filters

    官网:https://cn.vuejs.org/v2/api/#filters https://cn.vuejs.org/v2/api/#Vue-filter 分为全局过滤器和局部…

    数据库 2023年6月16日
    0137
  • 计算机网络基础

    计算机网络基础 计算机网络的定义和功能 计算机网络是利用通信设备和线路,将分布在地理位置不同的、功能独立的多个计算机系统连接起来,以功能完善的网络软件(网络通信协议及网络操作系统等…

    数据库 2023年6月16日
    0132
  • c++ map查找键值

    map用法 查找键是否存在 1、count函数 count函数用于统计key值在map中出现的次数,map的key不允许重复,因此如果key存在返回1,不存在返回0 if (mp….

    数据库 2023年6月6日
    0305
  • gorm 版本对比

    两个版本 github.com/jinzhu/gorm v1.9.16 gorm.io/gorm v1.21.3 Open // jinzhu func Open(dialect …

    数据库 2023年6月9日
    0159
  • JavaWeb核心篇(3)——JSP,MVC,三层架构

    JavaWeb核心篇(3)——JSP,MVC,三层架构 在本篇文章中我们会学习到JSP,MVC,三层架构 虽然JSP已经快被时代所淘汰,但是在一些老旧的工作场所还是有在使用,所以了…

    数据库 2023年6月14日
    0127
  • 开源、强大的Linux服务器集群管理工具,比宝塔好用!

    在这之前肯定很多人都接触过Linux管理面板:宝塔,宝塔的确非常方便而且好用,安装也简单,复制粘贴几句命令即可安装完成,且提供免费版。今天呢,民工哥向大家介绍另一个Linux的服务…

    数据库 2023年6月9日
    0234
  • MySQL实战45讲 4,5

    04 | 深入浅出索引(上) 索引的出现实际上是为了提高数据查询的效率,就像一本书的目录一样。 [En] The emergence of the index is actuall…

    数据库 2023年5月24日
    0148
  • Linux 学习笔记2(未完待续)

    Linux 学习笔记2 学习Linux的原因 Linux刚面世时并没有图形界面,所有操作全靠命令完成,如磁盘操作、文件读写、目录操作、进程管理、文件权限; 在职场中,大量的服务器维…

    数据库 2023年6月14日
    0128
  • Docker Maven构建缓存spring boot依赖包

    背景 每次通过 docker build ‘xxx’ 的时候,总是会去maven镜像下载一大堆Jar包,平均每次build都要在3分钟左右,效率非常低下,于…

    数据库 2023年6月6日
    0147
  • IDEA 使用插件连接远程 Docker (Dockerfile)

    IDEA 使用插件连接远程 Docker 测试地址 https://github.com/Rain-with-me/JavaStudyCode/tree/main/2-spring…

    数据库 2023年6月14日
    0214
  • 浅谈多线程中数据的绑定和赋值

    我们知道,微软的.NET控件做了大量的工作,用起来还是不错的,一般的数据绑定或者赋值比较简单。如下所示 文本赋值: txtTest.Text = “abc”…

    数据库 2023年6月11日
    0116
  • spring内嵌cglib包,这里藏着一个大坑

    问题发现 2022-01-21 早上 9 点,订单系统出现大面积的”系统未知错误”报错,导致部分用户无法正常下单。查询后台日志,可以看到大量的 duplic…

    数据库 2023年6月6日
    0183
  • 排查线上问题的9种方式

    德国科技管理专家斯坦门茨早年移居美国,他以非凡的才能成为美国企业界的佼佼者。一次,美国著名的福特公司的一组电机发生故障,在束手无策之时,公司请斯坦门茨出马解决问题。 斯坦门茨在电机…

    数据库 2023年6月6日
    0134
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球