SQL Query

SQL Query to Rank Rows

Assign rankings using ROW_NUMBER, RANK, or DENSE_RANK window functions.

SQL Query to Rank Rows

Assign rankings using ROW_NUMBER, RANK, or DENSE_RANK window functions.

Quick Answer

SELECT name, salary, RANK() OVER (ORDER BY salary DESC) as rank FROM employees;

Explanation

ROW_NUMBER gives unique sequential numbers. RANK gives same rank to ties but skips numbers. DENSE_RANK gives same rank but doesn't skip.

Query Variants

Row Number

SELECT name, salary, ROW_NUMBER() OVER (ORDER BY salary DESC) as row_num FROM employees;

Rank

SELECT name, salary, RANK() OVER (ORDER BY salary DESC) as rank FROM employees;

Dense Rank

SELECT name, salary, DENSE_RANK() OVER (ORDER BY salary DESC) as dense_rank FROM employees;

Partitioned

SELECT name, department, salary, RANK() OVER (PARTITION BY department ORDER BY salary DESC) as dept_rank FROM employees;

Pro Tips

  • ROW_NUMBER: 1, 2, 3, 4...
  • RANK: 1, 2, 2, 4... (skips after ties)
  • DENSE_RANK: 1, 2, 2, 3... (no skip)

Related SQL Queries

Continue learning with more SQL query examples:

Related Content

From Our Blog

Try it yourself

Practice this query in our interactive SQL sandbox.