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

计算每天的新用户占比

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

全部评论

相关推荐

不愿透露姓名的神秘牛友
07-10 11:31
点赞 评论 收藏
分享
点赞 评论 收藏
分享
陆续:不可思议 竟然没那就话 那就我来吧 :你是我在牛客见到的最美的女孩
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-10 14:10
啊啊啊啊好幸福,妈妈是我找工作发疯前的一束光
榕城小榕树:你是我见过最幸福的牛客男孩
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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