select t1.user_id, min(t1.date),t1.number
from
(
    select *,count(id) over(partition by user_id) as number
    from order_info
    where datediff(date,"2025-10-15")>0
      and status ="completed"
      and product_name in ("C++","Java","Python")
) t1

where t1.number >1
group by 1,3
order by t1.user_id