我有一个db2链接服务器,我正在通过SQL Server运行查询。
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');
该表具有历史记录,因此每个人的年龄都有一行。我想为每个分区选择编号最高的行,因为这将给我他们当前的年龄,但是,当我将限制1选择最高的结果时,我只会得到1行,而忽略所有其他人。问题是有多个人住在一所房子里,我需要他们所有的年龄,而不仅仅是其中一个。如何选择db2中每个分区的最佳结果?
答案 0 :(得分:0)
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
希望这会有所帮助-由于有关数据的信息有限,这只是一个最佳猜测