CTE — temporary named result set.
Syntax:
1WITH cte_name AS (2 SELECT ...3 FROM ...4 WHERE ...5)6SELECT *7FROM cte_name;
Benefits:
Example:
1WITH monthly_sales AS (2 SELECT3 DATE_TRUNC('month', order_date) as month,4 SUM(amount) as total5 FROM orders6 GROUP BY 17)8SELECT9 month,10 total,11 LAG(total) OVER (ORDER BY month) as prev_month12FROM monthly_sales;
BA use cases: