Вы должны создать подзапрос (т.е. двойной выбор), например
SELECT A, B, A/B as prct_pass
FROM
(
SELECT countif(cond1) as A,
countif(cond2) as B
FROM <yourtable>
)
В обоих запросах будет обработано одинаковое количество данных. В первом подзапросе вы выполните только 2 countif (), в случае, если этот шаг занимает много времени, тогда выполнение 2 вместо 4 должно быть действительно более эффективным.
Рассмотрим пример с использованием bigquery publi c наборов данных :
SELECT
countif(homeFinalRuns>3) as A,
countif(awayFinalRuns>3) as B,
countif(homeFinalRuns>3)/countif(awayFinalRuns>3) as division
FROM `bigquery-public-data.baseball.games_post_wide`
или
SELECT A, B, A/B as division FROM
(
SELECT countif(homeFinalRuns>3) as A,
countif(awayFinalRuns>3) as B
FROM `bigquery-public-data.baseball.games_post_wide`
)
мы видим, что выполнение всех задач в одном (без подзапроса) на самом деле немного быстрее. (Я выполнял запросы 6 раз для разных значений неравенства, в 5 раз быстрее и один раз медленнее)
В любом случае эффективность будет зависеть от того, насколько облагается налогом вычисление условия в вашем конкретном наборе данных.