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

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

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

select b.user_id,b.first_buy_date,c.second_buy_date,b.cnt from
(select distinct a.user_id,
date as first_buy_date,
num as cnt
from (
    select user_id,count(*) over(partition by user_id ) as num,
    row_number() over(partition by user_id order by date) as date_rk,date
    from order_info
    where date>'2025-10-15'
    and status ='completed'
    and (product_name ='C++' or product_name ='Java' or product_name ='Python')
)a
where a.num>=2
and a.date_rk=1)b
join
(
select distinct a.user_id,
date as second_buy_date,
num as cnt
from (
    select user_id,count(*) over(partition by user_id ) as num,
    row_number() over(partition by user_id order by date) as date_rk,date
    from order_info
    where date>'2025-10-15'
    and status ='completed'
    and (product_name ='C++' or product_name ='Java' or product_name ='Python')
)a
where a.num>=2
and a.date_rk=2)c
on b.user_id =c.user_id
order by b.user_id

看似复杂,但其实是把上一题复制成2个表,1个用来求first date,1个用来求second date

全部评论

相关推荐

点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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