HardPro challengeSQL

Dense Rank Employees by Salary

SQLDatabases

Write a SQL query that ranks every employee by salary **within their
department using dense ranking** (no gaps when salaries are tied).
Order the output by department, then rank, then name.

Table: `employees`

idnamesalarydept
1Alice90000Engineering
2Bob90000Engineering
3Carol75000Engineering
4Dave80000Marketing
5Eve80000Marketing
6Frank60000Marketing

Alice and Bob are tied → both rank 1; Carol is rank 2 (dense, no gap).

Expected output (columns: name, dept, salary, rank)

Alice|Engineering|90000|1
Bob|Engineering|90000|1
Carol|Engineering|75000|2
Dave|Marketing|80000|1
Eve|Marketing|80000|1
Frank|Marketing|60000|2

DENSE_RANK vs RANKRANK skips numbers after a tie (1,1,3);

DENSE_RANK never skips (1,1,2).

Sample tests

Test #1Ties at rank 1 in both depts; no gap → rank 2 follows directly
Input: "CREATE TABLE employees (id INTEGER, name TEXT, salary INTEGER, dept TEXT);\nINSERT INTO employees VALUES\n (1, 'Alice', 90000, 'Engineering'),\n (2, 'Bob', 90000, 'Engineering'),\n (3, 'Carol', 75000, 'Engineering'),\n (4, 'Dave', 80000, 'Marketing'),\n (5, 'Eve', 80000, 'Marketing'),\n (6, 'Frank', 60000, 'Marketing');"
Output: "Alice|Engineering|90000|1\nBob|Engineering|90000|1\nCarol|Engineering|75000|2\nDave|Marketing|80000|1\nEve|Marketing|80000|1\nFrank|Marketing|60000|2"