如果可用,则选择第二行(如果不是第一行)

问题描述 投票:2回答:1

我有一个如下所示的表格:

我想选择与InstanceNumber 1的RowNumber 2和其他实例的rownumber 1对应的Operator条目。这是一个例子,其中只有instancenumber 1有两个rownumber,但我想能够选择每个intances的最后一个rownumber。任何帮助表示赞赏。

sql sql-server-2008
1个回答
2
投票

一种方法使用窗口函数:

select t.*
from (select t.*, max(rownumber) over (partition by instancenumber) as maxrn
      from t
     ) t
where rownumber = maxrn;

也就是说,如果你有正确的索引,以下可能会更快一点:

select t.*
from t
where t.rownumber = (select max(t2.rownumber) from t t2 where t2.instancenumber = t.instancenumber);
© www.soinside.com 2019 - 2024. All rights reserved.