Skip to main content

common_table_expressions_cte

📊 Common Table Expressions (CTEs)​

CTEs simplify complex queries by breaking them into named subqueries. Use Rails 6+ with to chain CTEs for readability and reuse.

recent_sales = Sale.select(:user_id, "SUM(amount) AS total").where("created_at > ?", 1.month.ago).group(:user_id)
User.with(recent_sales: recent_sales).joins("JOIN recent_sales ON recent_sales.user_id = users.id")
.select("users.*, recent_sales.total")