题解 | SQL166 #每天的日活数及新用户占比#

每天的日活数及新用户占比

https://www.nowcoder.com/practice/dbbc9b03794a48f6b34f1131b1a903eb

WITH t1 AS (
    SELECT uid,
           in_time
    FROM tb_user_log
    UNION ALL
    SELECT uid,
           out_time AS in_time
    FROM tb_user_log
),
t2 AS (
    SELECT uid,
           in_time,
           RANK() over (PARTITION BY uid ORDER BY uid ASC, in_time ASC ) AS num_1
    FROM t1
),
t3 AS (
    SELECT uid,
           DATE (in_time) AS dt
    FROM t2
    WHERE num_1 = 1
),
t4 AS (
    # 新用户
    SELECT dt,
           count(uid) AS new_num
    FROM t3
    GROUP BY dt
),
t5 AS (
    SELECT uid,
           DATE (in_time) AS dt
    FROM t2
),
t6 AS (
    SELECT dt,
           count(DISTINCT uid) AS dau
    FROM t5
    GROUP BY dt
)
SELECT t6.dt,
       t6.dau,
       IFNULL(ROUND(t4.new_num / t6.dau ,2),0.00) AS uv_new_ratio
       FROM t6
LEFT JOIN t4
ON t6.dt = t4.dt
ORDER BY dt;

# 关键在于 IFNULL 进行 none 值转化为 0 值

全部评论

相关推荐

05-12 17:00
门头沟学院 Java
king122:你的项目描述至少要分点呀,要实习的话,你的描述可以使用什么技术,实现了什么难点,达成了哪些数字指标,这个数字指标尽量是真实的,这样面试应该会多很多,就这样自己包装一下,包装不好可以找我,我有几个大厂最近做过的实习项目也可以包装一下
点赞 评论 收藏
分享
05-11 20:45
门头沟学院 Java
有担当的灰太狼又在摸...:零帧起手查看图片
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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