#跟前一题差不多,多个第二次购买日期,开个窗
select user_id,min(date) as first_buy_date,max(case when rn=2 then date end ) as second_buy_date,count(1) as cnt
from 
(
    select user_id , date , row_number()over(partition by user_id order by date ) as rn
from order_info
where product_name in ('C++','Python','Java')
and date >='2025-10-15'
and status = 'completed'
)t
group by user_id
having count(1) >=2
order by 1