I really need to discuss my question about the project code. I could not understand why we should use join in this project and I have tested my code without join and it returned the same result for every question. For example to calculate the first touches attributed to different campaigns. Below is my code. I would appreciate if someone can discuss with me, thanks!
with t as (
select user_id, min(timestamp) as first_touch, utm_source, utm_campaign
group by 1)
select t.utm_source, utm_campaign, count(*)
group by 1, 2
order by 3 desc;