在MAX()ORDER BY中保留NULL



我有下面的查询和结果输出。

select seq_no, timestamp, 
max(timestamp) over (partition by seq_no) as max
from temp
SEQ_NO时间戳最大值2013年6月27日15:422013年6月27日15:432013年6月27日15:432013年6月27日15:4322013年6月27日15:442013年6月27日星期二15:44

如果突出显示值,则可以看到计算的MAX()不会保留NULL值。我相信我已经读过,默认情况下,MAX()函数会忽略NULL,所以这是有道理的。。。但是我希望保留该行的NULL,这意味着SEQ_NO=2的条目如下所示。

SEQ_NO时间戳最大值2.2013年6月27日星期二15:44

我试过使用KEEP()函数,但不清楚我走的是对的。

只需使用case语句:

select seq_no, timestamp, 
       (case when timestamp is not null
             then max(timestamp) over (partition by seq_no)
        end) as maxtimestamp
from temp

最新更新