SQL Window Functions

Rankings, running totals and more.

✍️ 3 exercises + code challenge in this lesson

Window functions calculate across a set of rows related to the current row, without collapsing them into one row like GROUP BY does.

function() OVER (PARTITION BY ... ORDER BY ...)

  • ROW_NUMBER(), RANK(), DENSE_RANK(): numbering and ranking.
  • SUM() OVER (...): running totals.
  • LAG() / LEAD(): values from the previous / next row.

Key Takeaways: SQL Window Functions

Mastering SQL Window Functions helps you write clean and reliable SQL code. Follow standard conventions, test edge cases, and keep logic simple. Try running the code example below and complete the exercises to build confidence.

SQL Window Functions Code Example

SQL
SELECT ProductName, Category, Price,
       RANK() OVER (PARTITION BY Category ORDER BY Price DESC) AS RankInCategory
FROM Products;

SELECT OrderID, OrderDate,
       COUNT(*) OVER (ORDER BY OrderDate) AS RunningOrderCount,
       LAG(OrderDate) OVER (ORDER BY OrderDate) AS PreviousOrder
FROM Orders;
Free sign-in required · Google login available

SQL Window Functions Practice Exercises

Check what you learned in “SQL Window Functions”.

/ 3 solved
Fill in the blank

Number rows by price, highest first.

ROW_NUMBER()  (ORDER BY Price DESC)
✓ Correct! Not quite. Try again.
Multiple choice

How are window functions different from GROUP BY?

✓ Correct! Not quite. Try again.
Code challenge

Select ProductName and RANK() OVER (ORDER BY Price DESC) AS PriceRank for the 3 most expensive products.

Write the code in the live editor. Your answer is checked automatically.

Free sign-in required · Google login available

to save your exercise progress.
Finished this lesson?
Mark it complete to track your progress.

Stuck on something?

Ask the community in the CodesInTech forum.

Need a developer?

Learning on your own is great — and when you need professional help, our team builds custom software, websites and mobile apps for clients worldwide.

Explore Our Services