select product_id, round(click_cnt / show_cnt, 3) as ctr, round(IF (click_cnt > 0, cart_cnt / click_cnt, 0), 3) as cart_rate, round(IF (cart_cnt > 0, payment_cnt / cart_cnt, 0), 3) as payment_rate, round(IF (payment_cnt > 0, refund_cnt / payment_cnt, 0),3) as refund_rate from ( select product_id, COUNT(1) as show_cnt, sum(if_click) as click_cnt, sum(if_cart) as cart_cnt, sum(if_payment) as payment_cnt, sum(if_refund) as refund_cnt from tb_user_event where DATE_FORMAT (event_time, '%Y%m') = '202110' group by product_id ) as t_product_index_cnt where payment_cnt = 0 or refund_cnt / payment_cnt <= 0.5 order by product_id;
建立新表存储总展示数,点击数,加入购物车数,支付书和退货数,确定计算范围为2021-10,展示数为1,按照商品编号分组
使用新表中数据算出各个指标,注意计算三位小数和取0值的情况,确定范围为退货率<=0.5和没有支付的商品,按照商品编号顺序输出