select distinct(user_id) from
(select *,row_number() over(partition by user_id order by product_name) as trank from order_info
where status = 'completed' 
and product_name in('C++','Java','Python') 
and date > '2025-10-15') as a
where a.trank >= 2
order by user_id asc;