Skip to content
SQLSimplified
Data AnalystQuestion 54 of 57

Top N Rows per Group

Problem

The CEO wants to see a list of the top 3 highest-paid employees in each department. Write a query using window functions to rank salaries within departments, and return only the rows where the rank is <= 3.

Database Schema

Table: employees

  • employee_id (INT): Unique identifier for the employee.
  • first_name (VARCHAR): First name of the employee.
  • last_name (VARCHAR): Last name of the employee.
  • salary (INT): Employee's salary.
  • department_id (INT): Foreign key referencing the department.
  • manager_id (INT): Foreign key referencing the manager (another employee).
  • hire_date (DATE): Date the employee was hired.

Table: departments

  • department_id (INT): Unique identifier for the department.
  • department_name (VARCHAR): Name of the department.

Try It

Loading playground environment...

Hint

Solution