select id, is_group_buy,
case when is_group_buy='No' then name else null end as client_name
from (
    select a.id, is_group_buy, name,
    count(1) over (partition by user_id) as cnt
    from order_info a left join client b on a.client_id=b.id
    where date>'2025-10-15'
    and status='completed'
    and product_name in ('C++', 'Java', 'Python')
) temp
where cnt>=2
order by id