SQL PARTITION BY Function

Quick summary: The SQL PARTITION BY clause divides rows into groups for window functions.

SQL PARTITION BY Syntax

OVER ( PARTITION BY column1, column2 ... )
SQL

SQL PARTITION BY Basic examples

SELECT user_id, COUNT(*) OVER (PARTITION BY user_id) FROM orders;
SQL
Output:
Order count per user on each row

Partitions rows by user_id.

SQL PARTITION BY Real-world usage

SELECT department, salary, AVG(salary) OVER (PARTITION BY department) FROM employees;
SQL
Output:
Department salary averages

Calculates per-group metrics.

SQL PARTITION BY Edge cases

SELECT COUNT(*) OVER (PARTITION BY NULL) FROM users;
SQL
Output:
Same count for all rows

NULL creates a single partition.

SQL PARTITION BY Common mistakes

Confusing PARTITION BY with GROUP BY

PARTITION BY does not collapse rows.

Incorrect
GROUP BY department
Correct
OVER (PARTITION BY department)

Use PARTITION BY for window functions.

SQL PARTITION BY Frequently Asked Questions

What does PARTITION BY do in SQL?

Divides rows into groups for window functions.

Use case of PARTITION BY?

Group-based calculations.

Used with window functions?

Yes.

Syntax?

OVER (PARTITION BY column).

Difference from GROUP BY?

Does not collapse rows.

Common mistake?

Confusing with GROUP BY.

Used with ROW_NUMBER()?

Yes.

Used with RANK()?

Yes.

Performance?

Depends on partition size.

Supports multiple columns?

Yes.

Used in analytics?

Yes.

Best practice?

Partition logically related data.

SQL PARTITION BY Related SQL Keywords