Skip to main content
SQL • LESSON 26

SQL RANK() & DENSE_RANK()

How do we rank items with tie handling (gaps vs contiguous ranks)?

Advanced3 Minutes450 XP
🤔 THE QUESTION

How do we rank items with tie handling (gaps vs contiguous ranks)?

💡 WHAT IS IT?

RANK() leaves gaps after ties (1, 2, 2, 4), while DENSE_RANK() assigns consecutive numbers (1, 2, 2, 3).

🎯 WHAT IS IT USED FOR?

Leaderboards, competition scoring, top salary tiers with accurate tie handling.

💻 EXAMPLE
SELECT name,
salary,
RANK() OVER (
  ORDER BY salary DESC
) AS rank,
DENSE_RANK() OVER (
  ORDER BY salary DESC
) AS dense_rank
FROM employees;

🎯 Mission Objectives

Practice typing production-grade SQL code for SQL RANK() & DENSE_RANK().

  • RANK()
  • DENSE_RANK()
  • Tie handling
  • Window ordering