DB29.5。从第一列中选择不同的值,但可以看到其他两列的值

DB29.5。从第一列中选择不同的值,但可以看到其他两列的值,db2,Db2,我有一个包含80000多行(标记提要)的表,其中我有12个不同的标记(TagID),所以我只想返回12行 我想根据(MAX)date列查找每个tagid的最新值。所以我真的希望在tagid上有一个不同的标记,确保我有最新日期的记录,并显示tagid、日期和位置列 SELECT date, tagid, location FROM table a WHERE date = ( SELECT MAX(date) FROM table b WHERE a.key1 = b.ke

我有一个包含80000多行(标记提要)的表,其中我有12个不同的标记(TagID),所以我只想返回12行

我想根据(MAX)date列查找每个tagid的最新值。所以我真的希望在tagid上有一个不同的标记,确保我有最新日期的记录,并显示tagid、日期和位置列

SELECT date, tagid, location
FROM table a
WHERE date = (
    SELECT MAX(date)
    FROM table b
    WHERE a.key1 = b.key1
      AND a.key2 = b.key2
      -- etc
)

你会得到你想要的。我猜
其中a.tagid=b.tagid
可能是您想要的WHERE子句,但是如果有其他列使行唯一,您可能还需要包括这些列。

以下是一种在不连接子查询中的所有键列的情况下生成所需结果的方法:

WITH x AS ( 
     SELECT datecol, 
         tagid, 
         location, 
         ROW_NUMBER() OVER ( PARTITION BY tagid ORDER BY datecol DESC ) AS rnum
     FROM sometable
)
SELECT datecol, tagid, location FROM x WHERE rnum = 1
;