选择并合并表的活动记录ID

时间:2018-01-25 10:04:34

标签: oracle

表1如下

ID Name PID updateDT
-----------------------
1  A    26  21-Jan-2018 
2  A    26  21-Dec-2017
3  A    26  <null>
4  B    45  <Null>
5  B    45  21-Dec-2017

想要编写一个查询,以便结果为

ID Name PID updateDT    Lt_Record(Active record ID)
----------------------------------------
1  A    26  21-Jan-2018  3
2  A    26  21-Dec-2017  3
3  A    26  <null>       3
4  B    45  <Null>       4
5  B    45  21-Dec-2017  4

请帮忙

1 个答案:

答案 0 :(得分:1)

您可以使用first_value()功能:

select id, name, pid, updatedt, 
       first_value(id) over (partition by pid order by updatedt desc nulls last) as lt_record
from the_table
order by pid, updatedt desc nulls last;

在线示例:http://dbfiddle.uk/?rdbms=oracle_11.2&fiddle=d10412a2dc0aed9ee9c21d407d12b40c