SQL查询根据最大值获取筛选列表

时间:2016-07-06 04:39:05

标签: sql sql-server

我希望对此有一些新的看法。我一直试图在一天中的最佳时刻解决这个疑问,但仍然无法找到答案。 使用SQL Server 2012。

我有数据表

enter image description here

我想要的是每个sourcerecordID的最大版本号的recordID列表

从上面的例子我会得到2,5,7,9,10 就像我说的那样,我真的不知道如何得到这个结果所以任何帮助都值得赞赏

2 个答案:

答案 0 :(得分:1)

这很容易。使用ROW_NUMBER窗口功能

Select recordID From
(
select row_number()over(partition by sourcerecordID Order by versionnumber desc) RN,*
From yourtable
)A
Where RN = 1

答案 1 :(得分:0)

您提出的问题和您需要的结果不匹配。

这是你问的问题的答案。

select SourceRecordId,max(VersionNumber) VersionNumber from ver
group by SourceRecordId