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 语句也是可以的。

京公网安备 11010502036488号