SQL CTE vs Subqueries

Common Table Expression(CTE):

A CTE is temporary result set that you define within a WITH clause.

It can be referenced multiple times within the main Query

Syntax:

WITH cte_name As ( 

Select col1, col2 from table_name where <Condition>

)

Select col1, col2 from cte_name where <condition>

SubQueries:

Subquery is nested query within the main query

Syntax:

Select col1, col2 from table_name where col3 in (select col3 from other_table where condition)

 

🔑 Key Differences:

🔹 Readability: CTEs are cleaner and easier to maintain in complex queries.
🔹 Re-usability: CTEs can be referenced multiple times, while subqueries are one-time use.
🔹 Recursion: CTEs shine in recursive queries, which subqueries don’t support.

💼 When to Use:

🔹 Use CTEs when you need to reuse logic, improve readability, or perform recursive operations.
🔹 Use Subqueries for simpler tasks where reuse isn’t needed.



Comments

Popular posts from this blog

Databricks Auto Loader

Optimizing Spark memory - Resolving OutOfMemory (OOM)

PySpark tips for day-to-day use