MAX()分别存放2个日期

时间:2018-07-31 18:05:52

标签: sql db2 max

我试图找到一种方法来从一个字段中获取最大日期,然后删除重复项以从另一个字段中获取那些日期的最大日期。 到目前为止,我已经设法获得了有效日期的最大值,但是需要从这些值中获得最大时间戳以消除重复。 这是我到目前为止的内容:

SELECT
    a2.CUST_ID
    , Address
    , Effective_Date             --DATE variable
    , Timestamp_Entry            --DATETIME variable 

    FROM
        (SELECT
        CUST_ID
        , MAX (Effective_Date) as Most_Effective_Date
        FROM  Address_Table
        GROUP BY CUST_ID) a1

    JOIN Address_Table a2
    ON a1.CUST_ID = a2.CUST_ID and a1.Most_Effective_Date = a2.Effective_Date

(某些时间戳记条目可能是生效日期较旧的较新条目,这就是为什么生效日期优先,然后时间戳记应删除重复项的原因

1 个答案:

答案 0 :(得分:0)

我想这就是你想要的:

select a.*
from (select a.*,
             row_number() over (partition by cust_id order by effective_date desc, timestamp_entry desc) as seqnum
      from address_table a
     ) a
where seqnum = 1;

这将基于两列返回每个客户的“最新”地址。