题解 | #牛客的课程订单分析(五)#
牛客的课程订单分析(五)
https://www.nowcoder.com/practice/348afda488554ceb922efd2f3effc427
select a1.user_id, a1.first_buy_date, a2.second_buy_date, a3.cnt from ( select t1.user_id, t1.date first_buy_date from ( select user_id, date, row_number() over(partition by user_id order by date) rn from order_info where date > '2025-10-15' and product_name in ('C++','Java','Python') and status = 'completed' ) t1 where rn = 1 ) a1 -- rn = 1 inner join rn = 2 :自然可以满足用户下单2个以及2个以上 inner join ( select t1.user_id, t1.date second_buy_date from ( select user_id, date, row_number() over(partition by user_id order by date) rn from order_info where date > '2025-10-15' and product_name in ('C++','Java','Python') and status = 'completed' ) t1 where rn = 2 ) a2 on a1.user_id = a2.user_id inner join ( -- 2025-10-15以后状态为购买成功的C++课程或Java课程或Python课程,各用户购买总次数 select user_id, count(id) cnt from order_info where date > '2025-10-15' and product_name in ('C++','Java','Python') and status = 'completed' group by user_id ) a3 on a1.user_id = a3.user_id order by user_id ;