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

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

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

本题理解题意,按照题目的意思一步一步书写sql即可。
1.关联三张表个,选出需要的字段,并选出‘零食’标签的记录。
2. 计算每一种零食中,每一个用户近90天的购买数。
3. 计算每一种商品的复购率,并选出top3.
WITH tmp1 AS(
    # 关联三张表个,选出需要的字段,并选出‘零食’标签的记录     SELECT
        t1.product_id, t3.uid, t3.event_time,
        MAX(t3.event_time) OVER() max_time
    FROM
        tb_product_info t1
    JOIN 
        tb_order_detail t2
    ON t1.product_id = t2.product_id
    JOIN
        tb_order_overall t3
    ON t2.order_id = t3.order_id
    WHERE t1.tag = '零食' 
),
tmp2 AS(
        #  计算每一种零食中,每一个用户近90天的购买数     SELECT
        product_id,uid,COUNT(event_time) buy_cnt
    FROM
        tmp1
    WHERE DATEDIFF(max_time,event_time) < 90
    GROUP BY product_id,uid
)
#  计算每一种商品的复购率,并选出top3 SELECT
    product_id,ROUND(SUM(IF(buy_cnt >= 2,1,0)) / COUNT(DISTINCT uid),3) repurchase_rate
FROM
    tmp2
GROUP BY product_id
ORDER BY repurchase_rate DESC
LIMIT 0,3;    


全部评论

相关推荐

XingHaozhe:没啥大问题啊,Agent + 后端业务,勇敢投!
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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