select
    user_id
    ,date first_buy_date
    ,dt as second_buy_date
    ,cnt 
from
    (
        SELECT
            user_id,
            date,
            lead(date,1,date)over(partition by user_id order by date ASC) as dt,
            dense_rank() over (
                    partition by
                        user_id
                    order by
                        date ASC
                ) as rk,
            count(date) over (
                partition by
                    user_id
            ) as cnt
        from
            order_info
        where
            date > '2025-10-15'
            and product_name in ('C++', 'Java', 'Python')
            and status = 'completed'
    ) as t 
    where cnt > 1
and rk=1
order by user_id ASC;