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