# 先找到满足条件得记录
with t1 as (
    select user_id, date
    from order_info 
    where date > '2025-10-15'
    and status = 'completed'
    and product_name in ('Python', 'Java', 'C++')
),
t2 as (
    select user_id, min(date) as first_buy_date, count(date) as cnt
    from t1
    group by user_id
    having count(date) >= 2
),
t3 as (
    select user_id, min(date) as second_buy_date
    from t1
    where user_id in (select user_id from t2)
    and date > (
        select first_buy_date
        from t2
        where t2.user_id = t1.user_id
    )
    group by user_id
)
select t2.user_id, first_buy_date, t3.second_buy_date, cnt
from t2, t3
where t2.user_id = t3.user_id
order by user_id;