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