优化这条sql：
select
       (select count(distinct nascent_id) from dws_customer_rfm_day_snap_td_da where snap_date = date_add(CURDATE(), INTERVAL -1 Day)

  and pay_all_times > 0) / IFNULL(sum(life_cycle), 0)            as lifeTime,
       (select count(distinct nascent_id) from dws_customer_rfm_day_snap_td_da where snap_date = date_add(CURDATE(), INTERVAL -1 Day)

  and pay_all_times > 0) / IFNULL(sum(last_success_ago_days), 0) as activePeriod,
       (select count(distinct nascent_id) from dws_customer_rfm_day_snap_td_da where snap_date = date_add(CURDATE(), INTERVAL -1 Day)

  and pay_all_times > 0) / IFNULL(sum(buy_back_period), 0)       as repurchaseCycle
FROM dws_customer_rfm_day_snap_td_da
where snap_date = date_add(CURDATE(), INTERVAL -1 Day)

  and pay_all_times > 0;