跳转至

2668. 查询员工当前薪水 🔒

题目描述

表:Salary

+---------------+---------+ 
| 列名          | 类型    | 
+---------------+---------+ 
| emp_id        | int     | 
| firstname     | varchar |
| lastname      | varchar |
| salary        | varchar |
| department_id | varchar |
+---------------+---------+
(emp_id, salary) 是该表的主键(具有唯一值的列的组合)。
每行包含员工的详细信息和他们每年的薪水,但有些记录是旧的,包含过时的薪资信息。

找出每个员工的当前薪水,假设薪水每年增加。输出他们的 emp_id 、firstname 、lastname 、salarydepartment_id

按 emp_id 升序排序 返回结果表。

返回结果格式如下所示。

 

示例 1:

输入:
Salary 表:
+--------+-----------+----------+--------+---------------+
| emp_id | firstname | lastname | salary | department_id |
+--------+-----------+----------+--------+---------------+ 
| 1      | Todd      | Wilson   | 110000 | D1006         |
| 1      | Todd      | Wilson   | 106119 | D1006         | 
| 2      | Justin    | Simon    | 128922 | D1005         | 
| 2      | Justin    | Simon    | 130000 | D1005         | 
| 3      | Kelly     | Rosario  | 42689  | D1002         | 
| 4      | Patricia  | Powell   | 162825 | D1004         |
| 4      | Patricia  | Powell   | 170000 | D1004         |
| 5      | Sherry    | Golden   | 44101  | D1002         | 
| 6      | Natasha   | Swanson  | 79632  | D1005         | 
| 6      | Natasha   | Swanson  | 90000  | D1005         |
+--------+-----------+----------+--------+---------------+
输出:
+--------+-----------+----------+--------+---------------+
| emp_id | firstname | lastname | salary | department_id |
+--------+-----------+----------+--------+---------------+ 
| 1      | Todd      | Wilson   | 110000 | D1006         |
| 2      | Justin    | Simon    | 130000 | D1005         | 
| 3      | Kelly     | Rosario  | 42689  | D1002         | 
| 4      | Patricia  | Powell   | 170000 | D1004         |
| 5      | Sherry    | Golden   | 44101  | D1002         | 
| 6      | Natasha   | Swanson  | 90000  | D1005         |
+--------+-----------+----------+--------+---------------+

解释:
- emp_id 1 有两条记录,工资分别为 110000 和 106119,其中 110000 是更新后的工资(假设工资每年都会增加)
- emp_id 2 有两条记录,工资分别为 128922 和 130000,其中 130000 是更新后的工资。
- emp_id 3 只有一条工资记录,因此这已经是更新后的工资。
- emp_id 4 有两条记录,工资分别为 162825 和 170000,其中 170000 是更新后的工资。
- emp_id 5 只有一条工资记录,因此这已经是更新后的工资。
- emp_id 6 有两条记录,工资分别为 79632 和 90000,其中 90000 是更新后的工资。

解法

方法一

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
# Write your MySQL query statement below
SELECT
    emp_id,
    firstname,
    lastname,
    MAX(salary) AS salary,
    department_id
FROM Salary
GROUP BY emp_id
ORDER BY emp_id;

评论