Warby Parker Project - Last Question Help

On question 6 of the Warby Parker Usage Funnel Project, we wrote this script:

`SELECT DISTINCT q.user_id,
  q.user_id IS NOT NULL AS 'is_home_try_on',
  h.number_of_pairs,
  p.user_id IS NOT NULL AS 'is_purchase'
FROM quiz q
LEFT JOIN home_try_on h
  ON q.user_id = h.user_id
LEFT JOIN purchase p
  ON q.user_id = p.user_id
LIMIT 10;`

I’m wondering why is it is that in the Project Walkthrough they do not use this table to query by using WITH. Instead, the instructor uses UNION ALL to join all tables together (see below) which was a little confusing to me:

WITH q AS (
SELECT '1-quiz' AS stage, 
  COUNT(DISTINCT user_id)
FROM quiz),
h AS (
SELECT '2-home_try_on' AS stage,
  COUNT(DISTINCT user_id)
FROM home_try_on),
p AS (
SELECT '3-purchase' AS stage,
  COUNT(DISTINCT user_ID)
FROM purchase)

SELECT *
FROM q
UNION ALL
SELECT *
FROM h
UNION ALL
SELECT *
FROM p;

Instead of the above method, why does the following approach result in 1000 results for both ‘1-quiz’ and ‘2-home_try_on’?

WITH funnel AS (
SELECT DISTINCT q.user_id,
  q.user_id IS NOT NULL AS 'is_home_try_on',
  h.number_of_pairs,
  p.user_id IS NOT NULL AS 'is_purchase'
FROM quiz q
LEFT JOIN home_try_on h
  ON q.user_id = h.user_id
LEFT JOIN purchase p
  ON q.user_id = p.user_id
)
SELECT COUNT(DISTINCT user_id) AS '1-quiz',
  SUM(is_home_try_on) AS '2-home_try_on',
  SUM(is_purchase) AS '3-is_purchase'
FROM funnel;

I would have never thought to break it apart like the walkthrough did and some insight as to why one is preferred over the other would help a lot.

Thanks!