题解 | #计算每天的新用户占比#

计算每天的新用户占比

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

做是做出来了,写到最后我自己都乱了,无语,先记录一下。

这道题可以类比之前做过一道 #每月及截止当月的答题情况# 的这个。

难点在于:

判断哪些是新增用户。

这个代码应该可以精简,之后会修改。

select distinct
    login_date as dt,
    count(distinct uid) as total_user_num,
    concat (
        round(
            count(new_first_active_day) / count(distinct uid) * 100,
            1
        ),
        "%"
    ) as new_user_rate
from
    (
        select
            uid,
            login_date,
            (
                case
                    when login_date = first_active_day then first_active_day
                    else null
                end
            ) as new_first_active_day
        from
            (
                select
                    uid,
                    login_date,
                    min(login_date) over (
                        partition by
                            uid
                    ) as first_active_day
                from
                    user_login_tb
            ) as tb
    ) as tc
group by
    login_date
order by
    login_date

全部评论

相关推荐

10-13 13:49
南京大学 财务
饿魔:笑死我了,你简直是个天才
点赞 评论 收藏
分享
10-19 14:15
兰州大学 Java
黄花菜豆:咱俩bg很一致啊uu而且我也做过这个仿小红书,感觉有点太深了短期内不好驾驭啊怕被问穿
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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