题97:
根据下表写一条查询 SQL 来查找每个员工的税后工,按任意顺序返回结果,税后工资结果取整。
其中:每个公司的税率计算依照以下规则
- 如果这个公司员工最高工资不到 1000 ,税率为 0%;
- 如果这个公司员工最高工资在 1000 到 10000 之间,税率为 24%,
- 如果这个公司员工最高工资大于 10000 ,税率为 49%。
解题思路:
这题思路很简单就是用(case when max()over(partition by))找到每个公司最高工资然后做判断再算税后工资即可。
select
company_id,
employee_id,
employee_name,
round(
case when max(salary)over(partition by company_id)>10000 then salary*0.51
when max(salary)over(partition by company_id) between 1000 and 10000 then salary*0.76
else salary end,0) as salary
from Salaries;