SQL
Using Common Table Expressions (CTEs) for Readability
Enhance the clarity and structure of your complex SQL queries by breaking them down into logical, named sub-queries using Common Table Expressions (CTEs).
WITH MonthlySales AS (
SELECT
DATE_TRUNC('month', order_date) AS sales_month,
SUM(total_amount) AS total_monthly_sales
FROM
orders
WHERE
order_date >= '2023-01-01'
GROUP BY
DATE_TRUNC('month', order_date)
),
TopCustomers AS (
SELECT
customer_id,
SUM(total_amount) AS total_purchased
FROM
orders
GROUP BY
customer_id
ORDER BY
total_purchased DESC
LIMIT 5
)
SELECT
ms.sales_month,
ms.total_monthly_sales,
tc.customer_id,
tc.total_purchased
FROM
MonthlySales ms,
TopCustomers tc
WHERE
ms.sales_month = '2023-03-01'; -- Example filter
How it works: Common Table Expressions (CTEs), introduced by the `WITH` clause, allow you to define a named temporary result set that you can reference within a single `SELECT`, `INSERT`, `UPDATE`, or `DELETE` statement. They significantly improve query readability and modularity, making complex logic easier to understand and maintain, by breaking it into smaller, more manageable sub-queries.