Skip to content
SQLSimplified
Data AnalystQuestion 49 of 57

ROW_NUMBER() for Top N per Group

Problem

Each department head wants to know who their top earner is, but some salaries are identical, and they only want exactly ONE person per rank without duplicates. Assign a unique sequential row number to each employee within their respective department, ordered by salary descending. Return department_id, first_name, salary, and row_num.

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