Tsql SQL基于次要-主要方案选择最大值

Tsql SQL基于次要-主要方案选择最大值,tsql,max,Tsql,Max,我正在尝试创建一个查询,该查询将选择一个不同的行,使用修订次要/主要方案进行选择。下面是一个示例表: Serial Number | RevMajor | RevMinor ----------------------------------- AQ155 | 1 | 1 AQ155 | 1 | 2 AQ155 | 1 | 1 AQ155 | 1 |

我正在尝试创建一个查询,该查询将选择一个不同的行,使用修订次要/主要方案进行选择。下面是一个示例表:

Serial Number | RevMajor | RevMinor
-----------------------------------
AQ155         |    1     |    1
AQ155         |    1     |    2  
AQ155         |    1     |    1
AQ155         |    1     |    7    
AQ155         |    2     |    1  <---------
JR2709        |    1     |    7
JR2709        |    2     |    2  <---------
序列号| RevMajor | RevMinor
-----------------------------------
AQ155 | 1 | 1
AQ155 | 1 | 2
AQ155 | 1 | 1
AQ155 | 1 | 7
AQ155 | 2 | 1
另一种方法是:

select [serial number], revmajor, revminor
from table1 a
inner join ( select max(revMajor) from table1 ) b on a.revmajor = b.revmajor
另一种方法如果您知道只有两行

    select top 2 [serial number], revmajor, revminor
    from table1 a
    order by revmajor desc, revminor desc
另一种方法是:

select [serial number], revmajor, revminor
from table1 a
inner join ( select max(revMajor) from table1 ) b on a.revmajor = b.revmajor
另一种方法如果您知道只有两行

    select top 2 [serial number], revmajor, revminor
    from table1 a
    order by revmajor desc, revminor desc
你可以

select * from (
    select *, row_number() over (partition by [Serial Number] order by RevMajor desc, RevMinor desc) VersionRank
    from table
) T
where VersionRank = 1
你可以

select * from (
    select *, row_number() over (partition by [Serial Number] order by RevMajor desc, RevMinor desc) VersionRank
    from table
) T
where VersionRank = 1

谢谢这一个很有用,因为它允许我选择额外的列,如果我想,而不必担心分组方式谢谢这一个很有用,因为它允许我选择额外的列,如果我想,而不必担心分组方式