【问题标题】:Filter max of rn过滤器最大值 rn
【发布时间】:2011-03-15 09:08:13
【问题描述】:
如何在此处过滤 rn 的最大值
select *
from (
select *
, row_number() over (partition by name order by ox asc) as rn
from YourTable
) as SubQueryAlias
where rn = 1
在其归档上方rn = 1
我要过滤rn = max(rn)
【问题讨论】:
标签:
sql
sql-server-2008
tsql
sql-server-2005
window-functions
【解决方案1】:
将order by ox asc 更改为order by ox desc 并使用rn = 1
select *
from (
select *
, row_number() over (partition by name order by ox desc) as rn
from YourTable
) as SubQueryAlias
where rn = 1
【解决方案2】:
检查这个以获得 rn = max(rn):
select top 1 * from
( select * ,
row_number() over (partition by name order by ox asc)
as rn from YourTable )
as SubQueryAlias
order by rn desc