IntermediateCTEs & Recursive
CTE in UPDATE statement
The query
SQL
WITH avg_by_dept AS (
SELECT dept_id, AVG(salary) AS dept_avg
FROM employees
GROUP BY dept_id
)
UPDATE employees e
SET salary = e.salary * 1.05
FROM avg_by_dept a
WHERE e.dept_id = a.dept_id
AND e.salary < a.dept_avg;Note
“CTEs can be used in UPDATE/DELETE/INSERT statements. Very powerful for conditional bulk updates.