Я думаю, вам не нужно использовать объединение для этой задачи. Пожалуйста, попробуйте:
select session_id
from _demo.ga_conversions_test
where goal1completions_funnel=1 OR goal2completions_funnel=1 OR goal3completions_funnel=1
group by session_id
РЕДАКТИРОВАТЬ: Исходя из предоставленных данных, на вашем месте я нашел бы клиентов, имеющих более двух типов числа завершенных целей, и использовал бы внутреннее соединение, как показано ниже:
with cte as (
select clientid, count(distinct goalcompletion) as CountDifferentGoalCompletion
from _demo.ga_conversions_test
group by clientid
having count(distinct goalcompletion) > 1
)
select a.clientid, a.sessionid
from _demo.ga_conversions_test a
inner join cte on cte.clientid = _demo.ga_conversions_test.clientid
EDIT2: если структура cte не работает (не будет работать, если ее нет в SQL Server), то:
select a.clientid, a.sessionid
from _demo.ga_conversions_test a
inner join (select clientid, count(distinct goalcompletion) as CountDifferentGoalCompletion
from _demo.ga_conversions_test
group by clientid
having count(distinct goalcompletion) > 1) x
on x.clientid = a.clientid