快手数分一面
刚刚面了快手数分日常实习,第一个sql题就给我难住了,时间有限没写出来就叫停了,还是太菜了,求求大佬给个解答
表A uid p_date [用户ID 购买时间
问:8月1日的新增用户未来7日的留存率?#快手信息集散地##快手##数据分析#
表A uid p_date [用户ID 购买时间
问:8月1日的新增用户未来7日的留存率?#快手信息集散地##快手##数据分析#
全部评论
去重自连条件t1.id=t2.id,t1.date<t2.date,取count(case when diff(t1,t2)<=1 then t2 else end)就是次日人数,改成3就是三日留存吧
SELECT
round(count(DISTINCT b.uid) / count(DISTINCT a.uid), 2) AS '7日留存率'
FROM TableA a
JOIN TableA b ON a.uid = b.uid
WHERE a.p_date = '2021-08-01'
AND b.p_date BETWEEN '2021-08-01' AND '2021-08-07'
我之前有一位大佬把之前这个问题,我写的特简单,后来,让我形成了一个模板,无论隔天几天也好的留存率,都可以稍作修改然后得到结果,拓展性很强,需要的话,私聊我,我给您发过去。
算留存网上一搜很多模板的
刚刚问了室友,茅塞顿开,这好像就是一个常规留存率的问题,我傻了,我当时到底在纠结什么
怀疑我俩面的是一个了都 第一题也是这个
left join可以吗
限时多久呢哥们儿
8月1日的新增用户怎么算呢?之前没有购买过的才算吧。还有未来7日的留存率是次日留存率,三日、四日等等一直到7日吗
写一个CET表,取未来7日的数据,取出8.1新增用户数据作为左表,按照uid链接,用CET表里面的时间减去8.1作为留存类型(次37留),count计算除一下就可以得到不同留存类型下的留存率
面试主要内容是什么呀,方便透露嘛
用好join和datediff
相关推荐