Melendez
Melendez
全部文章
分类
题解(7)
归档
标签
去牛客网
登录
/
注册
Melendez的博客
全部文章
(共7篇)
题解 | #统计活跃间隔对用户分级结果#
用case when解决分级问题,需要注意的点 1.case when的用法:没有逗号,else后面没有then 2.可以通过单独select获取当前日期,但是需要注意这里需要用括号(select语句),否则会报错 3.注意新晋用户是min,是要保证第一次登陆是7天内,也就是最后登陆日期是max,第...
Mysql
2022-03-21
0
237
题解 | #2021年11月每天新用户的次日留存率#
求留存率的题目主要是要左连接两个表进行求解,主要利用条件是 a表的日期和b表的日期相减等于某个值(几日留存)来进行求解,然后利用count的性质,进行相除并求得最终结果。 这题需要注意的点是 需要构造跨天的表,跨天的表用union即可,因为union会把重复的去重掉。 2.需要求11月内的数据,但...
Mysql
2022-03-21
1
308
题解 | #每个创作者每月的涨粉率及截止当前的总粉丝量#
题目分析: 第一个需要解决的地方是每个月状态2相当于掉粉,状态1相当于涨粉,这里不能用if去做,因为有多个状态,所以用case when去处理。 第二个需要解决的就是,我们需要计算每个月截止当前的粉丝量,这里自然地想到用窗口函数去处理即可,这里窗口函数需要去partition by author如果...
Mysql
2021-11-30
39
4642
题解 | #每类视频近一个月的转发量/率#
问题分析 记录转发次数,也就是sum(if_retweet),这里不能用count,如果用count的话需要做一个if嵌套。 同时需要先进行where过滤掉超过时间的段的数据然后再进行group by SELECT tag, SUM(if_retweet) retweet_cnt, ROUND(SU...
Mysql
2021-11-30
1
311
题解 | #近一个月发布的视频中热度最高的top3视频#
题目分析 首先热度拆分成几个小指标,其中前几个指标都是比较简单就可以得到,新鲜度这个指标是第一个难点,需要通过DATEDIFF函数获取当前日期和该tag下最近播放日期的差值。 第二个难点就是获取当前日期,这里直接可以把(SELECT max(end_time) FROM tb_user_video_...
Mysql
2021-11-30
3
406
题解 | #平均播放进度大于60%的视频类别#
题目难点是: 1:要求输出带有%的格式,但是直接用avg输出是小数的格式。 2:如果我们用concat做连接变成%的话,我们最后还要求输出大于60%的数据,但是连接过的字符无法与60%进行直接比较 我们为了解决上面的问题,可以先筛选出来所有大于60%的数据,然后再select一次,对这些数据进行co...
Mysql
2021-11-30
16
931
题解 | #各个视频的平均完播率#
记录一下每题的题解和思路,本题主要需要注意需要的数据是2021年,同时count里嵌套if可以解决group by之后不能使用where的问题 SELECT t1.video_id,round(t2.finish/t1.total,3) avg from(SELECT video_id,COUNT...
Mysql
2021-11-30
2
543