select if(is_group_buy='Yes','GroupBuy',name) source,count(*) from order_info o left join client c on o.client_id=c.id where user_id in ( select user_id from order_info a where date>'2025-10-15' and product_name in ('C++','Java','Python') and status='completed' group by user_id having count(user_id)>=2 ) and product_name in ('C++','Java','Python') and status='completed' and date>'2025-10-15' group by client_id order by source
用的是SQL79 牛客的课程订单分析(三) 这个代码改的,注意这里表连接需要使用外连接,因为 client_id中有一个为0,但是client表中是没有的。然后就是使用了一个if语句,当然使用 case when 语句也是可以的。