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

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

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

# 1.根据sql164题,得到新用户表t1:按用户分组,选取最小进入时间
# 2.得到用户活跃表t2:分别查询uid,in_time和uid,out_time,将结果合并union去重(跨天处理)
# 3.根据uid t1左连t2得到列名uid,min_in_time,dt的表
# 4.按dt分组,dau=去重uid,日活数=count(min_in_time=dt)/dau
SELECT dt,COUNT(DISTINCT t1.uid) dau,ROUND(SUM(IF(min_in_time = dt,1,0))/COUNT(DISTINCT t1.uid),2) uv_new_ratio
FROM
(SELECT uid,DATE(MIN(in_time)) min_in_time
FROM tb_user_log
GROUP BY uid) t1
LEFT JOIN
(SELECT uid,DATE(in_time) dt
FROM tb_user_log
UNION
SELECT uid,DATE(out_time) dt
FROM tb_user_log
) t2
ON t1.uid = t2.uid
GROUP BY dt
ORDER BY dt

全部评论

相关推荐

砸砸无所畏惧:同字节耐面王 不同部门一起面了十几轮 最后放弃了 有个面试官透露面评都是算法能力不达预期
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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