我对结果输出有以下查询。
select seq_no, timestamp,
max(timestamp) over (partition by seq_no) as max
from temp
SEQ_NO TIMESTAMP MAX 1 6/27/2013 15:42 6/27/2013 15:43 1 6/27/2013 15:43 6/27/2013 15:43 1 6/27/2013 15:43 6/27/2013 15:43 1 6/27/2013 15:43 6/27/2013 15:43 2 6/27/2013 15:44 2 6/27/2013 15:44 6/27/2013 15:44
对于 突出显示的 值,您可以看到计算出的MAX()不保留NULL值。我相信我已经读过默认情况下MAX()函数会忽略NULL,所以这是有意义的......但是...我想保留行的NULL,这意味着SEQ_NO = 2的条目看起来像以下。
SEQ_NO TIMESTAMP MAX 2 2 6/27/2013 15:44 6/27/2013 15:44
我尝试过使用KEEP()函数,但我不清楚我是在正确的道路上。
答案 0 :(得分:2)
只需使用case
声明:
select seq_no, timestamp,
(case when timestamp is not null
then max(timestamp) over (partition by seq_no)
end) as maxtimestamp
from temp