In this exercise, it is taught that we need a JOIN to get the utm_source for an attribution query.
WITH first_touch AS (
SELECT user_id,
MIN(timestamp) AS 'first_touch_at'
FROM page_visits
GROUP BY user_id)
SELECT ft.user_id,
ft.first_touch_at,
pv.utm_source
FROM first_touch AS 'ft'
JOIN page_visits AS 'pv'
ON ft.user_id = pv.user_id
AND ft.first_touch_at = pv.timestamp;
However, the page_visits table already has the utm_source column. We can simply select the utm_source from page_visits, instead of creating a temporary table and joining page_visits again. Like so:
SELECT user_id,
MIN(timestamp) AS 'first_touch_at', utm_source
FROM page_visits
My question is then, why do we need to perform a join? Are there any differences in the query result between the 2 methods?
Thanks.