题解 | #零食类商品中复购率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大厂面试题题解~

全部评论

相关推荐

不愿透露姓名的神秘牛友
07-04 18:02
好不容易拿到了字节Offer,鼠鼠做后端的,但家里人觉得可能被裁员不稳定,让鼠鼠去投国企,现在好纠结到底该咋选
文档传偷助手:该投就投吧,不过建议别放弃offer 拿到手里的才是最好的
投递字节跳动等公司9个岗位
点赞 评论 收藏
分享
06-23 11:43
门头沟学院 Java
allin校招的烤冷...:我靠,今天中午我也是这个hr隔一个星期发消息给我。问的问题还是一模一样的😅
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务