题解 | #计算每天的新用户占比#
计算每天的新用户占比
https://www.nowcoder.com/practice/c95ddc4968044035853c22e000a0ec21
思路:每天用户活跃数可以通过按用户id去重统计得到,重点是怎么得到新用户的数量,按照规定只要当日为第一次登录为新用户,那么也就是说只要当日之前的没有登录记录就算是新用户,所以,这里我通过sum() if() 函数得到了新用户的数量
公式:新用户数量/当日用户活跃数*100 保留1位小数 最后拼接%,得到新用户占比
select
t.login_date as dt,
count(distinct t.uid) as total_user_num,
concat(round(sum(IF((select count(1) from user_login_tb where
uid = t.uid and login_date < t.login_date) > 0,0,1)
) / count(distinct t.uid) * 100, 1),'%' ) as new_user_rate
from
user_login_tb t
group by
t.login_date
order by
t.login_date

