select id, user_id, product_name, status, client_id, date
from (
    select *, count(1) over (partition by user_id) as cnt
    from order_info
    where product_name in ('C++', 'Java', 'Python')
    and status='completed'
    and date>'2025-10-15'
) temp
where cnt>=2
order by id