选择具有最大日期的不同ID

时间:2014-09-17 13:58:50

标签: sql db2

我看到一些与我有关的问题,但它们并不完全相同。

我需要在DB2数据库中创建一个SELECT,在那里我只保留不同的ID及其数据。

示例,我有一些数据:

ID    DATE_BEGIN   DATE_END
1111  2014-01-01   2016-01-02
1111  2018-01-05   2018-01-03
1111  1990-01-01   9999-12-31
2222  1998-02-02   2000-12-20

就我而言,我想保留:

1111  1990-01-01   9999-12-31
2222  1998-02-02   2000-12-20

我的SELECT语句:

SELECT
ID, DATE_BEGIN, DATE_END
FROM TABLE_NAME T1
WHERE DATE_END = (SELECT
                  MAX(DATE_END)
                  FROM TABLE_NAME T2
                  WHERE T2.DATE_END = T1.DATE_END)

但我不断获得所有记录。

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

之前我问了一个类似的问题,请参阅我的帖子:Get the latest date for each record

SELECT ID, DATE_BEGIN, DATE_END
FROM (
SELECT ID, DATE_BEGIN, DATE_END
      ,ROW_NUMBER() OVER (PARTITION BY [ID] ORDER BY [DATE_END] DESC) RN 
FROM TABLE_NAME
)A
WHERE A.RN = 1

在我的帖子中归功于原始答案。