Employee Bonus LeetCode Solution

Last updated on August 3rd, 2024 at 11:48 pm

This Leetcode problem Employee Bonus LeetCode Solution is done in SQL.

List of all LeetCode Solution

Level of Question

Easy

Employee Bonus LeetCode Solution

Employee Bonus LeetCode Solution

Problem Statement

Column NameType
empId int
namevarchar
supervisorint
salaryint
Table: Employee

empId is the column with unique values for this table. Each row of this table indicates the name and the ID of an employee in addition to their salary and the id of their manager.

Column NameType
empId int
bonusint
Table: Bonus

empId is the column of unique values for this table. empId is a foreign key (reference column) to empId from the Employee table. Each row of this table contains the id of an employee and their respective bonus.

Write a solution to report the name and bonus amount of each employee with a bonus less than 1000.

Return the result table in any order.

The result format is in the following example.

Example 1:
Input:

empIdname supervisorsalary
3Bradnull4000
1John31000
2Dan32000
3Thomas 34000
Employee table:
empIdbonus
2500
42000
Bonus table:

Output:

name bonus
Bradnull
Johnnull
Dan 500

1. Employee Bonus LeetCode Solution MySQL

select 
  name, 
  bonus 
from 
  Employee as e 
  left join Bonus as b on e.empId = b.empId 
where 
  bonus < 1000 
  or bonus is null;

2. Employee Bonus LeetCode Solution Pandas

import pandas as pd

def employee_bonus(employee: pd.DataFrame, bonus: pd.DataFrame) -> pd.DataFrame:
    # Merge Employee and Bonus tables using a left join
    result_df = pd.merge(employee, bonus, on='empId', how='left')

    # Filter rows where bonus is less than 1000 or missing
    result_df = result_df[(result_df['bonus'] < 1000) | result_df['bonus'].isnull()]

    # Select "name" and "bonus" columns
    result_df = result_df[['name', 'bonus']]

    return result_df
Scroll to Top