题解 | #牛客的课程订单分析(五)#

牛客的课程订单分析(五)

http://www.nowcoder.com/practice/348afda488554ceb922efd2f3effc427

用case when新生成两列
后面随便用个聚合函数聚合起来

select user_id,
    min(first_buy_date),
    min(second_buy_date),
    cnt
from 
    (select 
        user_id,
        (case when d_rank=1 then date end) first_buy_date,
        (case when d_rank=2 then date end) second_buy_date,
         cnt
    from 
        (select user_id,
            date,
            dense_rank() over(partition by user_id order by date ASC) as d_rank,
            count(id) over(partition by user_id) as cnt
        from order_info
        where date>'2025-10-15' and product_name in ('C++','Python', 'Java') and status='completed') tmp
    ) tmp2

group by user_id,cnt having min(second_buy_date) is not null
order by user_id;
全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务