题解 | #零食类商品中复购率top3高的商品#

零食类商品中复购率top3高的商品

https://www.nowcoder.com/practice/9c175775e7ad4d9da41602d588c5caf3

-- 思路:

-- 1.统计出近90天零食类商品的购买信息[每个用户对每件商品的购买次数]

-- 2.按照复购率公式计算每种商品的复购率,并按复购率倒序、商品ID升序排序,取top3即可.

-- 思路:
--      1.统计出近90天零食类商品的购买信息[每个用户对每件商品的购买次数]
--      2.按照复购率公式计算每种商品的复购率,并按复购率倒序、商品ID升序排序,取top3即可.
-- 1.统计出近90天零食类商品的购买信息[每个用户对每件商品的购买次数]
with t as(
select 
    o.uid,
    d.product_id,
    count(o.uid) as buy_cnt
from tb_order_detail d 
left join tb_order_overall o on d.order_id = o.order_id
left join tb_product_info p on d.product_id = p.product_id
-- 二者等价
# where datediff((select max(event_time) from tb_order_overall), event_time) <= 89
where event_time > date_sub((select max(event_time) from tb_order_overall), interval 89 day) 
and o.status = 1
and p.tag = '零食'
group by o.uid, d.product_id
)

-- 2.按照复购率公式计算每种商品的复购率,并按复购率倒序、商品ID升序排序,取top3即可.
select 
    product_id,
    round(sum(case when buy_cnt >= 2 then 1 else 0 end) / count(1), 3) as  repurchase_rate
from t 
group by product_id
order by repurchase_rate desc, product_id
limit 3;
SQL大厂面试题 文章被收录于专栏

牛客网sql大厂面试题题解~

全部评论

相关推荐

1 收藏 评论
分享
牛客网
牛客企业服务