题解 | #零食类商品中复购率top3高的商品#
零食类商品中复购率top3高的商品
https://www.nowcoder.com/practice/9c175775e7ad4d9da41602d588c5caf3
- 筛选用户的购买信息,t1
- 联结
- 条件:
- 零食类,where
- 近90天: >=date_sub(今天,interval 89 day)
- 对t1中的用户进行打标,有复购记为1,无复购记为0,生成t2
- 分组:group by uid, product_id
- if(count(uid)>1,1,0) as tag
- 根据t2计算复购率:
- 分组:group by product_id
- 复购率:round(sum(tag)/count(tag),3)
- 排序:order by
- 取前3:limit
select
product_id,
round(sum(tag)/count(tag),3) as repurchase_rate
from(
-- 对用户打标,有复购,记为1 ,无复购记为0
select
uid,
product_id,
if(count(uid)>1,1,0) as tag
from(
-- 用户的购买情况
select
uid,
product_id,
event_time
from tb_order_overall
left join tb_order_detail using(order_id)
left join tb_product_info using(product_id)
where tag = '零食'
and event_time >= (select
date_sub(max(event_time),interval 89 day)
from tb_order_overall
)
) t1
group by uid,product_id
) t2
group by product_id
order by repurchase_rate desc,product_id
limit 3注意:-- 错误写法:date_sub(select max(event_time) from tb_order_overall,interval 89 day)
