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

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

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

## 统计每个用户的最小登入时间,记作该用户的新增用户时间,分别统计登入时间和登出时间;窗口函数统计 每个用户的
当前in_time和out_time是否和新增用户时间相等,若相等则记为1 代表当日的新增用户,否则记作0;在分别统计当天的新增用户个数,当天的活跃用户数,计算日活率并按照日期升序排列。

     select dt,
            count(uid) dau,
            round(sum(diff)/count(uid),2) uv_new_ratio
       from (
     select distinct uid,date_format(in_time,'%Y-%m-%d') dt,
            if(in_time=min(in_time)over(partition by uid order by in_time),1,0) diff
       from tb_user_log 
       union 
     select distinct uid,date_format(out_time,'%Y-%m-%d') dt,
            if(date_format(out_time,'%Y-%m-%d')=min(date_format(in_time,'%Y-%m-%d'))over(partition by uid order by in_time),1,0) diff
       from tb_user_log 
       ) A 
       group by dt 
       order by dt ; 

全部评论

相关推荐

迷茫的大四🐶:都收获五个了,兄弟那还说啥,不用改了,去玩吧
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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