SQL Quest › SQL Interview Questions › Window Functions
Rank Everyone by Salary
Comp review wants a company-wide salary ranking — position 1 is the highest paid.
Show name, department, salary, and salary_rank. Order by salary descending, then name.
The new idea: put an ORDER BY inside the OVER (). That orders the window, which is what lets RANK() count position. Watch what happens with ties — this table has plenty. Two people on the same salary get the same rank, and RANK then skips the next number: 1, 2, 2, 4. That skip is RANK's defining behaviour and a classic interview question.
The ORDER BY at the end of the query is a separate thing: it sorts your output. The one inside OVER () defines the window.
Solve it in the browser editor →
Runs on SQLite in your browser, graded against the expected result, no signup. A wrong answer gets a diagnosis, not just "incorrect".
Schema
employees
| emp_id | name | department | position | salary | hire_date | manager_id | performance_rating |
|---|---|---|---|---|---|---|---|
| 1 | Alice Johnson | Engineering | Senior Developer | 95000 | 2019-03-15 | 5 | 4.5 |
| 2 | Bob Smith | Engineering | Developer | 75000 | 2020-06-01 | 1 | 3.8 |
| 3 | Carol Williams | Marketing | Marketing Manager | 85000 | 2018-09-20 | NULL | 4.2 |
Expected output: ranks 1, 2, 3, 4, 5, 5, 7 — the tie at 98000 makes RANK skip 6
Hint
SELECT, Window Functions, RANK, and open the hint there if you stall.Concepts
SELECT Window Functions RANK ORDER BY
Practise the topic: SQL practice questions · Window function practice · Ranking function practice
In these company practice sets
A SQL Quest challenge matched to patterns reported for these companies — not a question any of them has published.
Related questions
Where would this cost you points in an interview?
Ten questions, no signup: a Skillmap across nine SQL skills and the one to fix first.
Take the readiness test