返回介绍

solution / 1400-1499 / 1468.Calculate Salaries / README

发布于 2024-06-17 01:03:19 字数 3165 浏览 0 评论 0 收藏 0

1468. 计算税后工资

English Version

题目描述

Salaries 表:

+---------------+---------+
| Column Name   | Type  |
+---------------+---------+
| company_id  | int   |
| employee_id   | int   |
| employee_name | varchar |
| salary    | int   |
+---------------+---------+
在 SQL 中,(company_id, employee_id) 是这个表的主键
这个表包括员工的company id, id, name 和 salary 

 

查找出每个员工的税后工资

每个公司的税率计算依照以下规则

  • 如果这个公司员工最高工资不到 $1000 ,税率为 0%
  • 如果这个公司员工最高工资在 [1000, 10000] 之间,税率为 24%
  • 如果这个公司员工最高工资大于 $10000 ,税率为 49%

任意顺序 返回结果。

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

 

示例 1:

输入:
Salaries 表:
+------------+-------------+---------------+--------+
| company_id | employee_id | employee_name | salary |
+------------+-------------+---------------+--------+
| 1      | 1       | Tony      | 2000   |
| 1      | 2       | Pronub    | 21300  |
| 1      | 3       | Tyrrox    | 10800  |
| 2      | 1       | Pam       | 300  |
| 2      | 7       | Bassem    | 450  |
| 2      | 9       | Hermione    | 700  |
| 3      | 7       | Bocaben     | 100  |
| 3      | 2       | Ognjen    | 2200   |
| 3      | 13      | Nyancat     | 3300   |
| 3      | 15      | Morninngcat   | 7777   |
+------------+-------------+---------------+--------+
输出:
+------------+-------------+---------------+--------+
| company_id | employee_id | employee_name | salary |
+------------+-------------+---------------+--------+
| 1      | 1       | Tony      | 1020   |
| 1      | 2       | Pronub    | 10863  |
| 1      | 3       | Tyrrox    | 5508   |
| 2      | 1       | Pam       | 300  |
| 2      | 7       | Bassem    | 450  |
| 2      | 9       | Hermione    | 700  |
| 3      | 7       | Bocaben     | 76   |
| 3      | 2       | Ognjen    | 1672   |
| 3      | 13      | Nyancat     | 2508   |
| 3      | 15      | Morninngcat   | 5911   |
+------------+-------------+---------------+--------+
解释:
对于公司 1,最高薪资为 21300。公司 1 的员工税率为 49%。
对于公司 2,最高薪资为 700。公司 2 的员工税率为 0%。
对于公司 3,最高薪资为 7777。公司 3 的员工税率为 24%。
薪资扣除税后的金额计算公式为:薪资 - (税率百分比 / 100) * 薪资
例如,Morninngcat(员工号 3,薪资为 7777)扣除税后的薪资为:7777 - 7777 * (24 / 100) = 7777 - 1866.48 = 5910.52,四舍五入为 5911。

解法

方法一

# Write your MySQL query statement below
SELECT
  s.company_id,
  employee_id,
  employee_name,
  ROUND(
    CASE
      WHEN top < 1000 THEN salary
      WHEN top >= 1000
      AND top <= 10000 THEN salary * 0.76
      ELSE salary * 0.51
    END
  ) AS salary
FROM
  Salaries AS s
  JOIN (
    SELECT company_id, MAX(salary) AS top
    FROM Salaries
    GROUP BY company_id
  ) AS t
    ON s.company_id = t.company_id;

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文