select ifnull(c.name, 'GroupBuy') source, r.cnt from
(select client_id, count(*) cnt from order_info
 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 client_id) r
left join client c
on r.client_id=c.id
order by source