Dept Top 3 Salaries

ASKED IN INTERVIEW
10pts
Google

Problem Statement

Find employees who earn the top 3 distinct salaries in each department. If multiple employees share a top salary, include all of them.

Rules:

  • Output columns: department_name, employee_name, salary.
  • Use DENSE_RANK to handle ties.
  • Sort by department_name ASC, then salary DESC.
Tests your understanding of
Window Functions, DENSE_RANK and Joins

Input Tables

employees
employee_id(INTEGER)employee_name(VARCHAR)salary(INTEGER)department_id(INTEGER)
1Joe850001
2Henry800002
3Sam600002
4Max900001
5Janet690001
6Randy850001
departments
id(INTEGER)name(VARCHAR)
1IT
2Sales
salary_grades
grade(VARCHAR)min_salary(INTEGER)
L580000

Expected Output

department_name(VARCHAR)employee_name(VARCHAR)salary(INTEGER)
ITMax90000
ITJoe85000
ITRandy85000
ITJanet69000
SalesHenry80000
SalesSam60000

Tags

HardASKED IN INTERVIEWWindow FunctionsDENSE_RANKJoins
20-30 min
31%

Hints