select (case when name is null then 'GroupBuy' else name end) source,count(*) cnt
from order_info o
left join client c
on o.client_id=c.id
where user_id in (select user_id from order_info where `date`>'2025-10-15' and status='completed' and product_name in ('C++','Java','Python') group by user_id
having count(*)>=2) and `date`>'2025-10-15' and status='completed' and product_name in ('C++','Java','Python')
group by name
order by source