力扣1873 计算特殊奖金

简介: 力扣1873 计算特殊奖金



题目

表: Employees

+-------------+---------+

| 列名        | 类型     |

+-------------+---------+

| employee_id | int     |

| name        | varchar |

| salary      | int     |

+-------------+---------+

employee_id 是这个表的主键(具有唯一值的列)。

此表的每一行给出了雇员id ,名字和薪水。


编写解决方案,计算每个雇员的奖金。如果一个雇员的 id 是 奇数 并且他的名字不是以 'M' 开头,那么他的奖金是他工资的 100% ,否则奖金为 0

返回的结果按照 employee_id 排序。

返回结果格式如下面的例子所示。

示例 1:

输入:

Employees 表:

+-------------+---------+--------+

| employee_id | name    | salary |

+-------------+---------+--------+

| 2           | Meir    | 3000   |

| 3           | Michael | 3800   |

| 7           | Addilyn | 7400   |

| 8           | Juan    | 6100   |

| 9           | Kannon  | 7700   |

+-------------+---------+--------+

输出:

+-------------+-------+

| employee_id | bonus |

+-------------+-------+

| 2           | 0     |

| 3           | 0     |

| 7           | 7400  |

| 8           | 0     |

| 9           | 7700  |

+-------------+-------+

解释:

因为雇员id是偶数,所以雇员id 是2和8的两个雇员得到的奖金是0。

雇员id为3的因为他的名字以'M'开头,所以,奖金是0。

其他的雇员得到了百分之百的奖金。

思路:

可以分出两部分然后用UNION关键字将它们合并  

 

SELECT employee_id,salary AS bonus
FROM Employees 
WHERE employee_id%2!=0 AND name NOT LIKE ("M%")
UNION
SELECT employee_id,salary*0 AS bonus
FROM Employees
WHERE employee_id%2=0 OR name LIKE ('M%')
ORDER BY employee_id

相关文章
|
9天前
|
算法 C++
【数据结构与算法】:关于时间复杂度与空间复杂度的计算(C/C++篇)——含Leetcode刷题-2
【数据结构与算法】:关于时间复杂度与空间复杂度的计算(C/C++篇)——含Leetcode刷题
|
9天前
|
算法 C++
【数据结构与算法】:关于时间复杂度与空间复杂度的计算(C/C++篇)——含Leetcode刷题-1
【数据结构与算法】:关于时间复杂度与空间复杂度的计算(C/C++篇)——含Leetcode刷题
|
14天前
|
算法 数据挖掘 大数据
深入解析力扣172题:阶乘后的零(计算因子5的方法详解及模拟面试问答)
深入解析力扣172题:阶乘后的零(计算因子5的方法详解及模拟面试问答)
|
8月前
【Leetcode -748.最短补全词 -762.二进制表示中质数个计算置位】
【Leetcode -748.最短补全词 -762.二进制表示中质数个计算置位】
29 0
|
1月前
|
SQL
leetcode-SQL-1440. 计算布尔表达式的值
leetcode-SQL-1440. 计算布尔表达式的值
38 1
|
1月前
|
存储
leetcode:415. 字符串相加(模拟竖式计算)
leetcode:415. 字符串相加(模拟竖式计算)
31 0
|
1月前
leetcode-6116:计算布尔二叉树的值
leetcode-6116:计算布尔二叉树的值
27 0
|
1月前
|
SQL
leetcode-SQL-1873. 计算特殊奖金
leetcode-SQL-1873. 计算特殊奖金
20 0
|
1月前
leetcode-1716:计算力扣银行的钱
leetcode-1716:计算力扣银行的钱
25 0
|
1月前
[leetcode 数位计算]2520. 统计能整除数字的位数
[leetcode 数位计算]2520. 统计能整除数字的位数