首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用SQL Find,每个员工的大多数当前薪资(注-一名员工在不同的日期有多个薪资记录)

使用SQL Find,每个员工的大多数当前薪资(注-一名员工在不同的日期有多个薪资记录)
EN

Stack Overflow用户
提问于 2022-02-17 05:11:30
回答 2查看 747关注 0票数 0

在“薪资”表中,每个员工在不同的期间内都有多个薪资(一对多的关系)。这些不同的持续时间被记录在"from_date“和"to_date”列的工资表中。下面是工资表的一个片段:

代码语言:javascript
复制
Select * FROM salaries

薪俸表片段

如何获得显示有员工号、from_date (基于当前薪资日期)和最新薪资的表的输出。所以基本上,我想回答的是--,每个员工当前的薪水是多少?

我尝试了,我只能获得每个员工的员工编号和最大from_date,但是我无法提取大多数当前薪资,我没有将薪资放在这里的SELECT语句中,因为这将显示员工的所有薪资,而不是当前薪资。这是我得到的代码和输出:

代码语言:javascript
复制
SELECT emp_no, Max(from_date) as "Most Current Salary Date"
from salaries
group by emp_no

上述代码的输出

的最终结果是:在我的输出中,我希望根据每个employee_no的最新薪资最大值(From_date),将第三列作为薪资列。考虑到我在输出中想要的是什么,在薪资列上聚合并不是必需的。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-02-23 04:17:18

以下是给出答案的两种方法:

第一种方法-通过创建工资表的两个实例(t1和t2)来运行子查询:

代码语言:javascript
复制
WITH temp as
(
SELECT emp_no as `Employee ID`, max(from_date) as `Most Recent Salary Date`
FROM salaries
group by emp_no
)
SELECT t1.`Employee ID`, t1.`Most Recent Salary Date`, t2.salary as `Most Current Salary`
FROM temp t1 LEFT JOIN salaries t2 ON (t1.`Employee ID` = t2.emp_no)
WHERE t1.`Most Recent Salary Date` = t2.from_date

通过第一种方法输出

第二种方法--使用窗口函数方法,如行号()、分区By():

代码语言:javascript
复制
WITH temp as
(SELECT emp_no as `Employee ID`, from_date as `Most Recent Salary Date`, salary as `Most Current Salary`, row_number() OVER (partition by emp_no order by from_date desc) as 'Row Number'
FROM salaries
)
SELECT `Employee ID`, `Most Recent Salary Date`, `Most Current Salary` 
FROM temp
WHERE `Row Number` = 1

通过第二种方法输出

票数 0
EN

Stack Overflow用户

发布于 2022-02-17 05:18:10

您不在查询中选择薪资。

请尝试:

代码语言:javascript
复制
SELECT emp_no, salary, Max(from_date) as "Most Current Salary Date"
from salaries
group by emp_no

如果您想要根据emp_no汇总薪资总额,请尝试:

代码语言:javascript
复制
SELECT emp_no, SUM(salary) as total_salary, Max(from_date) as "Most Current Salary Date"
    from salaries
    group by emp_no
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71152809

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档