runtime
40 / 88

task RANK / DENSE_RANK · medium

Second-highest salary per department

For each department that has employees, return department and second_highest_salary: the second-highest distinct salary in that department.

what to return

Columns
departmentsecond_highest_salary in this order
Rows
5 rows · any order
Watch for
Equal salaries count once (distinct values).
If a department has only one distinct salary, second_highest_salary is NULL.
Skill
Find the Nth distinct value per group, returning NULL when it doesn't exist. Refresher: Top N per group & ties →

expected result

Your query should return exactly these columns and values. Run it and compare.

expected result5 rows · any order
departmentsecond_highest_salary
Engineering180000
Sales95000
Finance85000

first 3 of 5 rows

data you can query

Sample rows from each table. Each column shows its type underneath; → marks a link to another table.

employees7 columns · 20 rows
idinteger · keynametextmanager_idinteger → employeesdepartment_idinteger → departmentstitletextsalaryrealhired_attext
1Ada MorenoNULLNULLCEO2500002019-03-01
2Bruno Costa11VP Engineering1800002019-06-15
3Carmen Diaz12VP Sales1500002020-01-10
4Dev Patel21Engineering Manager1400002020-05-04
5Elif Kaya41Senior Engineer1450002021-02-01

showing 5 of 20 rows

departments4 columns · 6 rows
idinteger · keynametextlocationtextbudgetreal
1EngineeringLisbon1100000
2SalesAustin450000
3FinanceAustin250000
4PeopleLisbon150000
5DesignRemote305000

showing 5 of 6 rows

solution.sql
 

Hints and the answer are always available. Using them counts the question as solved with help.