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

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

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

# 4、统计需求字段
select 
    dt,
    count(*) `dau`,
    round(sum(flag)/count(*),2) `uv_new_ratio`
from (
#3、获取每个用户登录记录的日期和注册日期和判断该日期是不是注册日期
    select 
    t1.uid,
    dt,
    t2.sign_date,
    if(dt=t2.sign_date,1,0) flag
from(
# 1、处理跨天的登录和登出(只能处理相邻的两天)
select 
    uid,
    date(in_time) dt
from tb_user_log
union 
select 
    uid,
    date(out_time) dt
from tb_user_log) t1
join
#2、获取每个用户的登录日期
(select uid,date(min(in_time)) `sign_date` from tb_user_log group by uid)t2
on t1.uid=t2.uid
)t3
group by dt

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

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