TSQL选择具有不同字段值的最高行数记录?

TSQL选择具有不同字段值的最高行数记录?,tsql,Tsql,假设我有一张表,上面有我的零件,看起来是这样的: PartNumber | Cost | Revision aaaaa | 10 | Rev1 xxxxx | 12 | Rev1 aaaaa | 10 | Rev2 ccccc | 37 | Rev1 ttttt | 23 | PreRelease sssss | 19 | Rev7 ttttt | 11 | Rev0 我想以某种方式获得最新版本的清晰零件号/成本记录。我知道最新版本将始终是表中给定零件的最后一项。例如,这里,“AAAA”的最新

假设我有一张表,上面有我的零件,看起来是这样的:

PartNumber | Cost | Revision
aaaaa | 10 | Rev1
xxxxx | 12 | Rev1
aaaaa | 10 | Rev2
ccccc | 37 | Rev1
ttttt | 23 | PreRelease
sssss | 19 | Rev7
ttttt | 11 | Rev0
我想以某种方式获得最新版本的清晰零件号/成本记录。我知道最新版本将始终是表中给定零件的最后一项。例如,这里,“AAAA”的最新版本是“Rev2”,它是表中与该零件号匹配的最后一条记录。如果输入一个新版本,它将在最后出现。这就是我想要的结果

PartNumber | Cost | Revision
xxxxx | 12 | Rev1
aaaaa | 10 | Rev2
ccccc | 37 | Rev1
sssss | 19 | Rev7
ttttt | 11 | Rev0

我意识到我可以按零件号分组,以获得不同的记录,但如何获得最新版本?提前感谢。

例如,您可以执行如下内联查询:

SELECT DISTINCT 
PartNumber, 
Cost, 
(
     SELECT MAX(Revision) 
     FROM parts t2 
     WHERE t1.PartNumber = t2.PartNumber
)
FROM parts t1


希望这有帮助

要获取最后输入的行,此表中至少需要一个主键ID字段:

以下是一个问题:

SELECT PartNumber,Cost,Revision 
FROM
(SELECT PartNumber,Cost,Revision,
       ROW_NUMBER() OVER (PARTITION BY PartNumber ORDER BY ID DESC) as rn
       FROM T
) AS T1
WHERE RN=1

如果没有ID字段,请尝试将“按ID说明排序”替换为“按修订说明排序”。但是在这种情况下,您的
REVISION
字段的格式应该设置为正确的顺序。

在子查询中抛出Group By查询,然后从那里抓取使其不同的记录,不带主键,然后从那里获取max主键

看起来像这样,我会把它转换成你的数据

Select Max(p2.PersonID), p2.FirstName
From core.Person p2
Where Exists
(
    Select p.FirstName, Count(1)
    From core.Person p
    Where p.FirstName = p2.FirstName
    Group By p.FirstName
)
Group By p2.FirstName

现在可以了,很抱歉。还增加了小提琴。我把桌子叫做零件。