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

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

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

# 虽然嵌套的表有点多,但是从逻辑上来说自己觉得非常清晰:
# 1.计算用户第一次登录的时间
# 2.根据1计算每天的新用户数
# 3.计算每日活跃用户数
# 4.把每日活跃用户数和每天的新用户数做连接,连接条件是日期
# 5.计算新用户数/活跃用户数,因为连接的两个表里面都已经按照日期分组了,所以连接后的表不需要再分组了

select t2.dt,dau,ifnull(round(new_user/dau,2),0) uv_new_ratio
from(
    -- 每天的新用户数
    select dt,count(1) new_user
    from(
        -- 用户第一次登录时间
        select uid,min(date(in_time)) dt
        from tb_user_log
        group by uid)t
    group by dt
)t1
-- 因为有可能某天没有新用户数,因此要右连接
right join(
    -- 每日活跃用户数
    select dt,count(distinct uid) dau
    from(
        select uid,date(in_time) dt from tb_user_log  -- 先在里面date()
        union all
        select uid,date(out_time) dt from tb_user_log
    )t
    group by dt
)t2
on t1.dt=t2.dt


全部评论

相关推荐

秋招倒计时了,有没有一起组队捡漏的?
牛客965593684号:我倒是觉得捡漏机会不多,现在大厂都精得很,超发一大堆offer,还是等春招吧
点赞 评论 收藏
分享
Yushuu:你的确很厉害,但是有一个小问题:谁问你了?我的意思是,谁在意?我告诉你,根本没人问你,在我们之中0人问了你,我把所有问你的人都请来 party 了,到场人数是0个人,誰问你了?WHO ASKED?谁问汝矣?誰があなたに聞きましたか?누가 물어봤어?我爬上了珠穆朗玛峰也没找到谁问你了,我刚刚潜入了世界上最大的射电望远镜也没开到那个问你的人的盒,在找到谁问你之前我连癌症的解药都发明了出来,我开了最大距离渲染也没找到谁问你了我活在这个被辐射蹂躏了多年的破碎世界的坟墓里目睹全球核战争把人类文明毁灭也没见到谁问你了😆
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务