How do I create temporary tables for multiple queries?

In this project Usage Funnels with Warby Parker

I’m using the WITH command to create temporary tables, however I was wondering if I could create a temporary table I can use for multiple queries so that I don’t have to copy and paste the WITH command for every new query?

WITH analysis AS (SELECT DISTINCT q.user_id,
	CASE
		WHEN h.user_id IS NOT NULL THEN "True"
    ELSE "False"
  END AS 'is_home_try_on',
h.number_of_pairs,
	CASE 
	  WHEN p.user_id IS NOT NULL THEN "True"
	  ELSE "False"
	END AS 'is_purchase'
FROM quiz q
LEFT JOIN home_try_on h
ON q.user_id = h.user_id
LEFT JOIN purchase p
ON h.user_id = p.user_id)
SELECT number_of_pairs AS "Number of pairs", 
CAST(COUNT(CASE WHEN is_purchase = 'True' THEN 1 END) AS float)/CAST(COUNT(CASE WHEN is_home_try_on = 'True' THEN 1 END) AS float)*100 AS "Purchase Rate (%)"
FROM analysis
WHERE number_of_pairs IS NOT NULL
GROUP BY number_of_pairs;