WITH ranked AS ( SELECT *, count(*) over (partition by user_id) AS cnt FROM order_info WHERE date >= '2025-10-15' AND status = 'completed' AND (product_name = 'Python' OR product_name = 'C++' OR product_name = 'Java') ), groupbuy AS ( SELECT *, count(*) over (partition by user_id) AS cnt FROM order_info WHERE is_group_buy = 'YES' ) SELECT case when r.client_id != 0 then c.name else 'GroupBuy' End AS source, count(client_id) AS cnt FROM ranked r LEFT JOIN client c ON r.client_id = c.id WHERE r.cnt >= 2 GROUP BY source, r.client_id ORDER BY source