题解 | #某宝店铺连续2天及以上购物的用户及其对应的天数#

某宝店铺连续2天及以上购物的用户及其对应的天数

https://www.nowcoder.com/practice/63ac3be0e4b44cce8dd2619d2236c3bf

连续问题又来了,见前面领取金币
步骤:
- 1. 添加新列,排序row_number()
- 2. 做差,date_sub()
- 3. 分组统计,group by 

思路:
1. 判断用户连续,排序并做差。
    - 对用户活跃日期进行排序,row_number()
    - 当连续的时候,会有当天的日期-排序序数=定值,即date_sub(dt,interval rn day)是定值
2. 按照定值分组,统计有几天,count(定值)


select
    user_id,
    count(diff) as days_count
from(
    -- 做差
    select
        user_id,
        sales_date,
        date_sub(sales_date,interval rn day) as diff
    from(
        -- 添加新列,rn
        select
            user_id,
            sales_date,
            row_number() over(partition by user_id order by sales_date) as rn
        from sales_tb
        where month(sales_date) = '11'
    ) t1
) t2
group by user_id,diff
having days_count >= 2 


全部评论

相关推荐

不愿透露姓名的神秘牛友
2025-12-14 11:05
谦虚的小冤种在加班:确实烂白菜,当年本科毕业字节给给开了66*15,哥们都不带看一眼的😋
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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