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