Department Top Three Salaries
<p>Table: <code>Employee</code></p>

<pre>
+--------------+---------+
| Column Name  | Type    |
+--------------+---------+
| id           | int     |
| name         | varchar |
| salary       | int     |
| departmentId | int     |
+--------------+---------+
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.
Each row of this table indicates the ID, name, and salary of an employee. It also contains the ID of their department.
</pre>

<p>&nbsp;</p>

<p>Table: <code>Department</code></p>

<pre>
+-------------+---------+
| Column Name | Type    |
+-------------+---------+
| id          | int     |
| name        | varchar |
+-------------+---------+
id is the primary key (column with unique values) for this table.
Each row of this table indicates the ID of a department and its name.
</pre>

<p>&nbsp;</p>

<p>A company&#39;s executives are interested in seeing who earns the most money in each of the company&#39;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>

<p>Write a solution to find the employees who are <strong>high earners</strong> in each of the departments.</p>

<p>Return the result table <strong>in any order</strong>.</p>

<p>The&nbsp;result format is in the following example.</p>

<p>&nbsp;</p>
<p><strong class="example">Example 1:</strong></p>

<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>

<p>&nbsp;</p>
<p><strong>Constraints:</strong></p>

<ul>
	<li>There are no employees with the <strong>exact</strong> same name, salary <em>and</em> department.</li>
</ul>

[]
['Create table If Not Exists Employee (id int, name varchar(255), salary int, departmentId int)', 'Create table If Not Exists Department (id int, name varchar(255))', 'Truncate table Employee', "insert into Employee (id, name, salary, departmentId) values ('1', 'Joe', '85000', '1')", "insert into Employee (id, name, salary, departmentId) values ('2', 'Henry', '80000', '2')", "insert into Employee (id, name, salary, departmentId) values ('3', 'Sam', '60000', '2')", "insert into Employee (id, name, salary, departmentId) values ('4', 'Max', '90000', '1')", "insert into Employee (id, name, salary, departmentId) values ('5', 'Janet', '69000', '1')", "insert into Employee (id, name, salary, departmentId) values ('6', 'Randy', '85000', '1')", "insert into Employee (id, name, salary, departmentId) values ('7', 'Will', '70000', '1')", 'Truncate table Department', "insert into Department (id, name) values ('1', 'IT')", "insert into Department (id, name) values ('2', 'Sales')"]
[{"value": "mysql", "text": "MySQL", "defaultCode": "# Write your MySQL query statement below\n"}, {"value": "mssql", "text": "MS SQL Server", "defaultCode": "/* Write your T-SQL query statement below */\n"}, {"value": "oraclesql", "text": "Oracle", "defaultCode": "/* Write your PL/SQL query statement below */\n"}, {"value": "pythondata", "text": "Pandas", "defaultCode": "import pandas as pd\n\ndef top_three_salaries(employee: pd.DataFrame, department: pd.DataFrame) -> pd.DataFrame:\n    "}, {"value": "postgresql", "text": "PostgreSQL", "defaultCode": "-- Write your PostgreSQL query statement below\n"}]
{"mysql": ["Create table If Not Exists Employee (id int, name varchar(255), salary int, departmentId int)", "Create table If Not Exists Department (id int, name varchar(255))"], "mssql": ["Create table Employee (id int, name varchar(255), salary int, departmentId int)", "Create table Department (id int, name varchar(255))"], "oraclesql": ["Create table Employee (id int, name varchar(255), salary int, departmentId int)", "Create table Department (id int, name varchar(255))"], "database": true, "name": "top_three_salaries", "pythondata": ["Employee = pd.DataFrame([], columns=['id', 'name', 'salary', 'departmentId']).astype({'id':'Int64', 'name':'object', 'salary':'Int64', 'departmentId':'Int64'})", "Department = pd.DataFrame([], columns=['id', 'name']).astype({'id':'Int64', 'name':'object'})"], "postgresql": ["Create table If Not Exists Employee (id int, name varchar(255), salary int, departmentId int)\n", "Create table If Not Exists Department (id int, name varchar(255))\n"], "database_schema": {"Employee": {"id": "INT", "name": "VARCHAR(255)", "salary": "INT", "departmentId": "INT"}, "Department": {"id": "INT", "name": "VARCHAR(255)"}}}
{"mysql": ["MySQL", "<p><code>MySQL 8.0</code>.</p>"], "mssql": ["MS SQL Server", "<p><code>mssql server 2019</code>.</p>"], "oraclesql": ["Oracle", "<p><code>Oracle Sql 11.2</code>.</p>"], "pythondata": ["Pandas", "<p>Python 3.10 with Pandas 2.2.2 and NumPy 1.26.4</p>"], "postgresql": ["PostgreSQL", "<p>PostgreSQL 16</p>"]}
['Database']