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

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

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

先计算各个日期的日活

with dau as (
    SELECT dt,count(DISTINCT uid) as 'dau_num'
    from (
        select uid,date(in_time) as 'dt'
        from tb_user_log
        UNION
        select uid,date(out_time) as 'dt'
        from tb_user_log
    ) as A
    group by dt
)

再计算每个用户的注册日期,再以此得出每个日期有几个新用户

with nu as (
    SELECT dt,count(*) as 'nu_num'
    from (
        SELECT uid,min(date(in_time)) as 'dt'
        from tb_user_log
        group by uid
    ) as A
    group by dt
)

最后用每个日期(dau)的表左连接新用户数量表(nu),完整代码:

with dau as (
    SELECT dt,count(DISTINCT uid) as 'dau_num'
    from (
        select uid,date(in_time) as 'dt'
        from tb_user_log
        UNION
        select uid,date(out_time) as 'dt'
        from tb_user_log
    ) as A
    group by dt
),nu as (
    SELECT dt,count(*) as 'nu_num'
    from (
        SELECT uid,min(date(in_time)) as 'dt'
        from tb_user_log
        group by uid
    ) as A
    group by dt
)
SELECT dt,dau_num,round(ifnull(nu_num,0)/dau_num,2)
from dau 
left join nu 
using(dt)


全部评论

相关推荐

搞机墨镜猫:生产实习放项目下面,简化一点,如果有更好的东西就可以直接替换掉,比如你说你拆过他们的伺服电机很了解结构,可以照着画一下写成项目 项目看看能不能再找一个课设之类的包装一下(别写减速器),两个项目比较好,把项目后面的三位建模几个字去掉(这样会觉得有实物)
机械人,你的秋招第一份简...
点赞 评论 收藏
分享
09-12 18:28
门头沟学院 Java
网友描述的太精准了👍
迷茫的大四🐶:不管活脏还是累,钱到位就行,钱到位啥都不用抱怨
投递字节跳动等公司10个岗位
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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