你好歹给个表结构呀,这是大概思路,自己转换成sql,能优化
select
SUM(CASE WHEN id= 1 THEN 1 ELSE 0 END) AS 购买1种产品用户数,
SUM(CASE WHEN id= 2 THEN 1 ELSE 0 END) AS 购买2种产品用户数,
SUM(CASE WHEN id= 3 THEN 1 ELSE 0 END) AS 购买3种产品用户数,
SUM(CASE WHEN id= 4 THEN 1 ELSE 0 END) AS 购买4种产品用户数,
SUM(CASE WHEN id= 5 THEN 1 ELSE 0 END) AS 购买5种产品用户数
from (
select a.名字,sum(c.id) as id from (
select a.名字,c.id from 用户表 a
left join 购买表 b
left join 产品表 c
where b.data<= "2023-02-01" and b.data >= "2023-02-01"
group by a.名字,c.id
)t
group by a.名字
)tt
group by tt.id