select count(case when t1.a = 1 then foo else null end) as A_COUNT
, count(case when t1.b = 2 then foo else null end) as B_COUNT
from t1
where t1.a = 1
or t1.b = 2
Где оговорка не является обязательной, строго говоря, но может способствовать производительности. Также «else null» подразумевается, когда предложение else опущено, так что вы также можете спокойно его отключить.