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;