select t1.id,t1.is_group_buy,c1.name from (
select o1.id,o1.status,o1.date,o1.product_name,o1.client_id
,count(if((o1.status='completed')
          and (o1.date >= '2025-10-15')
          and (o1.product_name='C++'
               or o1.product_name='Java'
               or o1.product_name='Python'),o1.id,null))
               over(partition by o1.user_id) as cnt
               ,o1.is_group_buy from 
               order_info as o1 
) t1 
               left join client as c1 
               on t1.client_id = c1.id where t1.cnt >= 2 and 
               t1.status='completed' and t1.date >= '2025-10-15' 
               and (t1.product_name='C++'
               or t1.product_name='Java'
               or t1.product_name='Python') order by t1.id