select a.source,count(a.source) cnt from
(select ifnull(c.name,'GroupBuy') source,user_id
from order_info o
left join
client c
on o.client_id=c.id
where datediff(date,'2025-10-15')>0
and product_name in ('C++','Java','Python')
and status='completed'
and o.user_id in (
select user_id
from order_info
where datediff(date,'2025-10-15')>0
and product_name in ('C++','Java','Python')
and status='completed'
group by user_id
having count(*)>1
)) a
group by a.source
order by a.source
- 利用表连接得到渠道和订单的表
- 利用筛选条件得到符合要求的订单
- 还包括子查询得到下单两次的用户
- 然后使用groupby的到最终结果