-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path1873. Calculate Special Bonus.sql
44 lines (40 loc) · 1.29 KB
/
1873. Calculate Special Bonus.sql
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
-- 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.
```
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.
```
SELECT
employee_id,
(CASE WHEN
MOD(employee_id, 2) = 1 AND name NOT LIKE 'M%' THEN salary
ELSE 0
END) AS bonus
FROM Employees
ORDER BY employee_id;