Coding Challenges/LeetCode

[SQL50] 577. Employee Bonus

기록해연 2025. 2. 19. 11:26

난이도: EASY

 

문제 링크: https://leetcode.com/problems/employee-bonus/?envType=study-plan-v2&envId=top-sql-50


문제

더보기

Table: Employee
+-------------+---------+
| Column Name | Type    |
+-------------+---------+
| empId       | int     |
| name        | varchar |
| supervisor  | int     |
| salary      | int     |
+-------------+---------+
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.
 
Table: Bonus
+-------------+------+
| Column Name | Type |
+-------------+------+
| empId       | int  |
| bonus       | int  |
+-------------+------+
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: 
Employee table:
+-------+--------+------------+--------+
| empId | name   | supervisor | salary |
+-------+--------+------------+--------+
| 3     | Brad   | null       | 4000   |
| 1     | John   | 3          | 1000   |
| 2     | Dan    | 3          | 2000   |
| 4     | Thomas | 3          | 4000   |
+-------+--------+------------+--------+


Bonus table:
+-------+-------+
| empId | bonus |
+-------+-------+
| 2     | 500   |
| 4     | 2000  |
+-------+-------+


Output: 
+------+-------+
| name | bonus |
+------+-------+
| Brad | null  |
| John | null  |
| Dan  | 500   |
+------+-------+

 


 

나의 최종 제출 답안:

SELECT e.name, b.bonus
FROM Employee e
LEFT JOIN Bonus b
ON e.empId = b.empId
WHERE b.bonus IS NULL OR b.bonus < 1000

e 테이블, b 테이블의 empId가 같은 직원을 찾아서,

b테이블의 보너스가 없거나, 1000만원 이하인 직원의 이름과 보너스를 출력.

b테이블에는 보너스가 있는 직원만 있기때문에, e테이블쪽을 기준으로 출력하기 위해 left join해 줌.

 


 

chatGPT에게 더 간단하고 효율적이게 수정해달라고 요청한 답안:

내가 푼 방법이 가장 효율적이고 가독성이 높다고 함.