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