[SQL 문제 풀이] Calculate Special Bonus (특별 보너스 계산)

Stupefyee's avatar
Jun 18, 2025
[SQL 문제 풀이] Calculate Special Bonus (특별 보너스 계산)
Calculate Special Bonus - LeetCode
Can you solve this real interview question? Calculate Special Bonus - Table: Employees +-------------+---------+ | Column Name | Type | +-------------+---------+ | employee_id | int | | name | varchar | | salary | int | +-------------+---------+ employee_id is the primary key (column with unique values) for this table. Each row of this table indicates the employee ID, employee name, and salary.   Write a solution to calculate the bonus of each employee. The bonus of an employee is 100% of their salary if the ID of the employee is an odd number and the employee's name does not start with the character 'M'. The bonus of an employee is 0 otherwise. Return the result table ordered by employee_id. The result format is in the following example.   Example 1: Input: Employees table: +-------------+---------+--------+ | employee_id | name | salary | +-------------+---------+--------+ | 2 | Meir | 3000 | | 3 | Michael | 3800 | | 7 | Addilyn | 7400 | | 8 | Juan | 6100 | | 9 | Kannon | 7700 | +-------------+---------+--------+ Output: +-------------+-------+ | employee_id | bonus | +-------------+-------+ | 2 | 0 | | 3 | 0 | | 7 | 7400 | | 8 | 0 | | 9 | 7700 | +-------------+-------+ Explanation: The employees with IDs 2 and 8 get 0 bonus because they have an even employee_id. The employee with ID 3 gets 0 bonus because their name starts with 'M'. The rest of the employees get a 100% bonus.
Calculate Special Bonus - LeetCode
notion image
각 직원의 보너스를 계산하는 솔루션을 작성합니다. 직원의 ID가 홀수이고 직원의 이름이 문자 'M'으로 시작하지 않는 경우 직원의 보너스는 급여의 100%입니다. 그렇지 않으면 직원의 보너스는 0입니다. employee_id에서 주문한 결과 테이블을 반환합니다.
 

내가 작성한 쿼리

MySQL, Oracle

SELECT employee_id, CASE WHEN MOD(employee_id, 2) != 0 AND SUBSTR(name, 1, 1) != 'M' THEN salary ELSE 0 END AS bonus FROM Employees ORDER BY employee_id;
Share article

stupefyee