Почему мы не используем подзапросы, чтобы все было проще читать / понимать / отлаживать?Я имею в виду, да, это немного многословно, не всегда лучший выбор в производстве, но это почти всегда помогает сделать вещи явными, хорошо обрисованными и очень удобочитаемыми:
select
ab_group,
avg_install_to_purchase,
avg_assignment_to_purchase,
if(coalesce(assignment_dates, 0) = 0, 0.0, purchases/assignment_dates) as ratio from
(
select
ab_group,
avg(install_to_purchase) as avg_install_to_purchase,
avg(assignment_to_purchase) as avg_assignment_to_purchase,
count(purchases) as purchases,
count(assignment_date) as assignment_dates
from (
select
ab_group,
coalesce(abs(datediff(install_date, conversion_date, day)), 0) as install_to_purchase,
coalesce(abs(datediff(assignment_date, conversion_date, day)), 0) as assignment_to_purchase,
coalesce(purchases, 0) as purchases,
assignment_date
from `mydataset.mytable`
)
)
)