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

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

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

WITH t1 as( -- 列出所有的活跃日期
    SELECT uid,date(in_time) dt FROM tb_user_log
    UNION ALL
    SELECT uid,date(out_time) dt FROM tb_user_log
),t2 as( -- 求出最早的活跃日期(注册日期)
    SELECT uid,min(dt) md FROM t1 group by uid order by uid
),t3 as(
    select
           #group_concat(DISTINCT t1.uid),
           dt,
           count(DISTINCT t1.uid) 'dau' -- 统计每天的活跃用户id
    FROM t1
    group by dt
    order by dt
),t4 as(
    SELECT dt,count(uid) 'reg_num' -- 注册时间该天的新用户数量
    FROM t3
    left JOIN t2
    ON t2.md = t3.dt
    group by t3.dt
)
SELECT t3.*,
       round(reg_num/dau,2)
       FROM t3 left join t4
ON t3.dt = t4.dt;

全部评论

相关推荐

05-14 20:34
门头沟学院 Java
窝补药贝八股:管他们,乱说,反正又不去,直接说680
点赞 评论 收藏
分享
求面试求offer啊啊啊啊:1600一个月?
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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