使用 Row_number() 和分区,然后排序 desc,并在 DB2 中选择顶部结果

using Row_number() and Partition, then ordering desc, and selecting top result in DB2

我有一个 db2 链接服务器,我正在 运行 通过 SQL 服务器进行查询。

select *
from openquery (DO,'
select distinct HOUSE_NUM, NAME, DOB, AGE, row_number()
    over(partition by DOB) rownum
from schema.INFO
where HOUSE_NUM = ''332''
group by HOUSE_NUM, NAME, DOB, AGE
order by NAME, rownum desc
limit 1
with ur');

table有历史记录,所以每一个人的年龄都有一行。我想 select 每个分区的最高编号行,因为这会给我他们当前的年龄,但是当我将限制 1 设置为 select 最高结果时,我只得到 1 行,忽略了所有其他人.问题是有很多人住在一所房子里,我需要他们所有的年龄,而不仅仅是他们中的一个。我如何 select db2 中每个分区的最高结果?

应用限制之前

应用限制后,我还需要其他名称

Db2 查询看起来像这样 - 无法在同一查询部分引用行号,这就是我使用 CTE 的原因

with temp as (
select distinct HOUSE_NUM, NAME, DOB, AGE
     , row_number() over(partition by HOUSE_NUM, NAME, DOB order by age desc) as rownum
  from schema.INFO
 where HOUSE_NUM = '332'
) 
select * 
  from temp 
 where rownum = 1

希望这对您有所帮助 - 由于有关数据的信息有限,这只是一个最佳猜测