select product_id,round(sum(case when num >=2 then 1 else 0 end)/count(*),3) as repurchase_rate from ( select product_id,uid,count(*) as num from tb_order_overall join tb_order_detail using(order_id) join tb_product_info using(product_id) where datediff((select max(date(event_time)) from tb_order_overall),date(event_time)) <90 and tag = '零食' group by product_id,uid)t group by product_id order by repurchase_rate desc,product_id limit 3
嵌套from子查询
先算出每个产品,每个人购买过多少次,然后再计算复购率