ifnull() 考虑分为为0 的情况,在本题中不加也没有问题
select product_id, ifnull(round(sum(if_click)/ count(id),3),0) ctr, ifnull(round(sum(if_cart)/ sum(if_click),3),0) cart_rate, ifnull(round(sum(if_payment)/ sum(if_cart),3),0) payment_rate, ifnull(round(sum(if_refund)/ sum(if_payment),3),0) refund_rate from tb_user_event where date_format(event_time,'%Y-%m')= '2021-10' group by product_id having refund_rate<=0.5 order by product_id