sqlintermediate
Common Table Expression (CTE) Patterns
Use CTEs to write readable, composable SQL queries with WITH clauses for complex logic.
sqlPress ⌘/Ctrl + Shift + C to copy
-- Simple CTE for readability
WITH active_users AS (
SELECT id, name, email, last_login
FROM users
WHERE status = 'active'
AND last_login > CURRENT_DATE - INTERVAL '30 days'
),
user_orders AS (
SELECT
u.id AS user_id,
u.name,
COUNT(o.id) AS order_count,
SUM(o.total) AS total_spent
FROM active_users u
JOIN orders o ON o.user_id = u.id
WHERE o.created_at > CURRENT_DATE - INTERVAL '90 days'
GROUP BY u.id, u.name
),
ranked AS (
SELECT *,
RANK() OVER (ORDER BY total_spent DESC) AS spend_rank
FROM user_orders
)
SELECT name, order_count, total_spent, spend_rank
FROM ranked
WHERE spend_rank <= 10;Use Cases
- complex queries
- ETL pipelines
- readable SQL
Tags
Related Snippets
Similar patterns you can reuse in the same workflow.
sqladvanced
Recursive CTE for Hierarchical Data
Query hierarchical data like org charts, categories, and file trees using recursive CTEs.
Best for: Querying organizational hierarchies
#sql#cte
sqlintermediate
Subquery Patterns — Scalar, Correlated, Derived
Common subquery patterns including scalar, correlated, and derived table subqueries.
Best for: complex filtering
#sql#subquery
sqladvanced
Recursive CTE for Tree Queries
Traverse hierarchical data like org charts and nested categories using PostgreSQL recursive common table expressions.
Best for: Org chart navigation
#cte#recursive
sqlintermediate
SQL Pivot and Crosstab Queries
Transform row data into columnar reports using CASE expressions, FILTER, and crosstab patterns.
Best for: Creating monthly revenue reports
#sql#pivot