题解 | #2021年11月每天新用户的次日留存率#

2021年11月每天新用户的次日留存率

https://www.nowcoder.com/practice/1fc0e75f07434ef5ba4f1fb2aa83a450

WITH user_t AS (
    SELECT uid, DATE_FORMAT(in_time,'%Y-%m-%d') AS timea
    FROM tb_user_log
    UNION 
    SELECT uid, DATE_FORMAT(out_time,'%Y-%m-%d') AS timea
    FROM tb_user_log
    ), user_t2 AS
    (
    SELECT DISTINCT *, 
    ROW_number() OVER (PARTITION BY uid ORDER BY timea) AS user_day
    FROM user_t 
    )

SELECT uf.timea AS dt,
ROUND(COUNT(ut2.uid) / COUNT(uf.uid), 2) AS uv_left_rate
FROM(
    SELECT *
    FROM user_t2
    WHERE user_day =1
    ) AS uf
LEFT JOIN user_t2 ut2 
ON ut2.uid = uf.uid AND DATE_ADD(uf.timea, INTERVAL 1 day) = ut2.timea
WHERE DATE_FORMAT(uf.timea, '%Y-%m') = '2021-11'
GROUP BY uf.timea
ORDER BY dt

注意找的是新用户第二天的留存率,我用了row_number 唉 太不精简了

我看有大佬直接用的min(date) 感觉好神/(ㄒoㄒ)/~~

https://blog.nowcoder.net/n/73d6ca1d59314da6986453ff76be8d38

全部评论

相关推荐

迟缓的斜杠青年巴比Q...:简历被投过的公司卖出去了,我前两天遇到过更离谱的,打电话来问我有没有意向报班学Java学习,服了,还拿我学校一个学长在他们那报班学了之后干了华为OD当招牌
点赞 评论 收藏
分享
Southyeung:我说一下我的看法(有冒犯实属抱歉):(1)简历不太美观,给我一种看都不想看的感觉,感觉字体还是排版问题;(2)numpy就一个基础包,机器学习算法是什么鬼?我感觉你把svm那些写上去都要好一点。(2)课程不要写,没人看,换成获奖经历;(3)项目太少了,至少2-3个,是在不行把网上学习的也写上去。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务