#跟前一题差不多,多个第二次购买日期,开个窗 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