我正在编写员工绩效历史详细信息oracle bi报告。我被困在下面的场景中。每个员工每年有多个行。但我只想提取所有员工每年最后一次的记录。
例子:
可用数据:
Employee_number Effective_date Name Performance_rating Comments
----------------- ---------------- ------- -------------------- ----------
1001 01/01/2017 Emp01 4.0 Good
1001 01/06/2017 Emp01 4.0 Good
1001 01/12/2017 Emp01 4.0 Good
1001 01/01/2018 Emp01 3.8 Good
1001 01/06/2018 Emp01 3.8 Good
1001 01/02/2019 Emp01 4.0 Good
1001 01/08/2019 Emp01 4.0 Good
在上表中,我只想提取每年的最后一个日期记录。
预期结果:
Employee_number Effective_date Name Performance_rating Comments
----------------- ---------------- ------- -------------------- ----------
1001 01/12/2017 Emp01 4.0 Good
1001 01/06/2018 Emp01 3.8 Good
1001 01/08/2019 Emp01 4.0 Good
请帮忙
3条答案
按热度按时间jckbn6z71#
我会用
ROW_NUMBER
分析函数:iklwldmw2#
尝试使用窗口功能
row_number()
这是演示。7z5jn7bk3#
也可以使用相关子查询执行此操作:
很有意思的是知道哪个更快
row_number()
方法或相关子查询。