SQL Window Functions and CTEs/Average within partition

Compute metrics per partition while keeping each row.

Section: Window Function Basics

Average within partition

sql
sql
SELECT employee_id, department_id, salary,
       AVG(salary) OVER (PARTITION BY department_id) AS dept_avg_salary
FROM employees;
Explanation

Window functions differ from GROUP BY because they keep row-level detail.

Learn the surrounding workflow

Compare similar commands or jump into common fixes when this command is part of a bigger troubleshooting path.

Related commands

Same sheet · prioritizing Window Function Basics
Assign row numbers
Number rows within an ordered partition.
OpenIn sheetsqlsame section
Rank rows
Assign ordered rankings with or without gaps.
OpenIn sheetsqlsame section
Compute running total
Accumulate values across an ordered window.
OpenIn sheetsqlsame section
Use LAG
Read a value from the previous row in the same partition.
OpenIn sheetsql1 tag match
Bucket rows with NTILE
Divide ordered rows into a fixed number of groups.
OpenIn sheetsql1 tag match
Use LEAD
Read a value from the next row in the same partition.
OpenIn sheetsql1 tag match