Intermediate Topic 33 of 51 Databases
Window Functions
Calculations across related rows without collapsing them.
How it works
Window functions compute a value for each row using a set of related rows, called a window, defined with OVER, optionally with PARTITION BY, ORDER BY and a frame such as ROWS BETWEEN. Unlike GROUP BY, they do not collapse rows. Examples include ROW_NUMBER, RANK, DENSE_RANK, LAG, LEAD, FIRST_VALUE, and running aggregates like SUM() OVER.
Step-by-step walkthrough
- A window function computes over related rows without collapsing them.
- RANK() OVER (ORDER BY score DESC) numbers the rows.
- Ana gets rank 1.
- Ben and Cy tie at rank 2.
- Di gets rank 4, and every input row is still in the output.
Where it is used
Ranking top products per category, running totals, moving averages, comparing a row with the previous one, calculating percent of total and deduplicating rows use window functions.
Common pitfall
They are evaluated after WHERE and GROUP BY, so you cannot filter on them directly in WHERE; wrap the query in a subquery or CTE. The default frame with ORDER BY may be RANGE and not ROWS, causing subtle differences with ties. Large windows can be memory intensive. Be explicit about partitioning and ordering to get deterministic results.
Where it fits in the course
Window Functions is topic 33 of 51 in Databases, rated Intermediate. It follows Query Execution Plans. The next topic is Common Table Expressions.
Practice and explore
- Open the interactive lesson, with a mini quiz.
- Take the Databases quiz.
How to study this topic
- Read the explanation above and restate the definition in your own words.
- Open the interactive lesson and answer its mini quiz.
- Read the common pitfall, then write a short example that avoids it.
- Check your understanding in the Databases quiz, and revisit the topic if you miss a question.
Frequently asked questions
What is Window Functions?
Where do people use Window Functions?
What is the most common mistake with Window Functions?
What should I learn before this topic?
How can I practice it?
Is Window Functions hard to learn?
How long does it take to learn Window Functions?
Which topics are related to Window Functions?
What should I study after Window Functions?
Related topics
- Query Execution Plans (Databases)
- Common Table Expressions (Databases)
- Query Optimization (Databases)
- Recovery and Logging (Databases)
- Functions and Relations (Theory & Discrete Math)
- Functions and Graphs (Math for Computing)
- Functions (Programming Fundamentals)