MySQL刷题笔记1

MySQL刷题笔记

抖音题库

1-计算视频的完播率

完播率需要计算结束时间与开始时间的差值与视频时长的关系

这里巧妙的使用if和count来对完成播放的视频进行计数

  • image.png

2-计算播放进度,将大于60%的类别输出

代码看起来都不难理解,使用timestampdiff对时间进行计算,使用having对计算结果进行筛选

  • image.png

3-统计有用户互动的最近一个月中,每类视频的转发量与转发率

主要考察“最近一个月”的条件限定,将日期与最大日期进行差值计算,建立子表来进行计算

  • image.png

4-计算2021年里每个创作者每月的涨粉率以及截止当月的总粉丝数量

考察一个涨粉率的计算:(加粉-掉粉)/播放量
另外就是“截止当月的粉丝数量”这个需要使用到窗口函数了

  • image.png

5-2021年国庆前三天,每类视频每天的近一周总点赞量和最大单天转发量

与4类似,这里同样考察了窗口函数的调用,知识一个是sum一个max

  • image.png

6-找出近一个月发布的视频中,热度最高的top3视频

考察热度的计算,以及“近一个月”这个考点(使用的方法与3一样,没啥好看的)

image.png

百度题库

1-统计2021年11月每天的人均浏览文章时长(秒)

这里的人均并不是用的avg,需要计算

  • image.png

2-统计每篇文章的同一时刻最大在看人数

考察如何计算瞬时的最大计数(在看人数),这个有点难理解

  • image.png

在线教育

1-统计科目转化率(报名人数/浏览人数)

送分的,没啥考察点

  • image.png

2-统计直播开始时(19:00),各个科目的在线人数

考察时间条件的设定,使用between是需要保证对比时间格式的一致

  • image.png

3-统计每个科目的平均观看时长(分钟)

考察平均的计算吧,比较简单,也没啥说的

  • image.png

4-统计每个科目的出勤率(在线10分钟人数/报名人数)

没有什么难点,但是在手敲时发现这个表的连接会很复杂,这个时候使用子表,直接用join会显得非常清晰和简洁

  • image.png

5-统计每个科目的最大同时在线人数

前面也出现过类似的难题,解法是一致的,这里详细说明一下
①合并登入和登出时间,并记录1与-1的uv列
②使用开窗函数,按课程id分组,时间前后排列,对uv值进行计算得到在线人数列
③使用max找到最大值,然后进行表的拼接

  • image.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容