我有一个员工变更表,该表可跟踪对员工工作历史记录所做的每项变更,而没有明确的标记说明该变更是什么。我试图跟踪员工曾工作过的不同部门,包括他/她工作过的第一个部门。因此,所有变更以及他/她工作的第一部门。一名员工可能会回到他/她曾经工作过的部门,我们也需要带这些行。我突出显示了我想带回来的行
Emp更改历史记录表
答案 0 :(得分:1)
您似乎只想要lag()
:
select t.*
from (select t.*, lag(dept_no) over (partition by emp_no order by effective_date) as prev_dept_no
from t
) t
where prev_dept_no is null or prev_dept_no <> dept_no