1
deck
1. What Are Window Functions?
Window functions perform calculations across related rows — without collapsing them.
They let you keep all the rows while adding insights like rankings, running totals, or row comparisons.
2. Why Use Them?
You can use window functions to:
- Rank rows within a group
- Compute running totals or moving averages
- Compare each row to others in the same dataset
- Add insights without losing row-level detail
===
3. Basic Syntax
The basic syntax for a window function is as follows:
SELECT name, grade,
RANK() OVER (PARTITION BY class ORDER BY grade DESC) AS rank
FROM students;
OVER()
defines the window- You can partition and/or order the rows
- The function runs across the window, not the full table
===
4. Components of OVER()
The OVER()
clause is used to define the window.
It can include:
PARTITION BY
— to restart the calculation for each group (like a department or course)ORDER BY
— to define sequence for calculations like rankings or running totals
Both are optional, but using them smartly is key to powerful analysis.
===
5. Window vs Aggregate Functions
Feature | Aggregate Functions | Window Functions |
---|---|---|
Collapse rows | ✅ | ❌ |
Keep all original rows | ❌ | ✅ |
Add insights per row | ❌ | ✅ |
Window functions enhance each row, while aggregates summarize groups.
===
6. Common Use Cases
RANK()
,DENSE_RANK()
,ROW_NUMBER()
for rankingsSUM()
,AVG()
withOVER()
for per-row aggregatesLEAD()
,LAG()
for comparing current row with others
Window functions help answer how this row compares — not just what's the total.
Want to learn more?
Join CodeFriends Plus membership or enroll in a course to start your journey.