2022-03-27 20:56:26 +08:00
< p > Table: < code > Employee< / code > < / p >
< pre >
+--------------+---------+
| Column Name | Type |
+--------------+---------+
| id | int |
| name | varchar |
| salary | int |
| departmentId | int |
+--------------+---------+
2023-12-09 18:42:21 +08:00
id is the primary key (column with unique values) for this table.
departmentId is a foreign key (reference column) of the ID from the < code > Department < / code > table.
2022-03-27 20:56:26 +08:00
Each row of this table indicates the ID, name, and salary of an employee. It also contains the ID of their department.
< / pre >
< p > < / p >
< p > Table: < code > Department< / code > < / p >
< pre >
+-------------+---------+
| Column Name | Type |
+-------------+---------+
| id | int |
| name | varchar |
+-------------+---------+
2023-12-09 18:42:21 +08:00
id is the primary key (column with unique values) for this table.
2022-03-27 20:56:26 +08:00
Each row of this table indicates the ID of a department and its name.
< / pre >
< p > < / p >
< p > A company' s executives are interested in seeing who earns the most money in each of the company' s departments. A < strong > high earner< / strong > in a department is an employee who has a salary in the < strong > top three unique< / strong > salaries for that department.< / p >
2023-12-09 18:42:21 +08:00
< p > Write a solution to find the employees who are < strong > high earners< / strong > in each of the departments.< / p >
2022-03-27 20:56:26 +08:00
< p > Return the result table < strong > in any order< / strong > .< / p >
2023-12-09 18:42:21 +08:00
< p > The result format is in the following example.< / p >
2022-03-27 20:56:26 +08:00
< p > < / p >
2023-12-09 18:42:21 +08:00
< p > < strong class = "example" > Example 1:< / strong > < / p >
2022-03-27 20:56:26 +08:00
< pre >
< strong > Input:< / strong >
Employee table:
+----+-------+--------+--------------+
| id | name | salary | departmentId |
+----+-------+--------+--------------+
| 1 | Joe | 85000 | 1 |
| 2 | Henry | 80000 | 2 |
| 3 | Sam | 60000 | 2 |
| 4 | Max | 90000 | 1 |
| 5 | Janet | 69000 | 1 |
| 6 | Randy | 85000 | 1 |
| 7 | Will | 70000 | 1 |
+----+-------+--------+--------------+
Department table:
+----+-------+
| id | name |
+----+-------+
| 1 | IT |
| 2 | Sales |
+----+-------+
< strong > Output:< / strong >
+------------+----------+--------+
| Department | Employee | Salary |
+------------+----------+--------+
| IT | Max | 90000 |
| IT | Joe | 85000 |
| IT | Randy | 85000 |
| IT | Will | 70000 |
| Sales | Henry | 80000 |
| Sales | Sam | 60000 |
+------------+----------+--------+
< strong > Explanation:< / strong >
In the IT department:
- Max earns the highest unique salary
- Both Randy and Joe earn the second-highest unique salary
- Will earns the third-highest unique salary
In the Sales department:
- Henry earns the highest salary
- Sam earns the second-highest salary
- There is no third-highest salary as there are only two employees
< / pre >